F_VN_Histogram
Calculate the (multi-channel) histogram of an image.
Can use available TwinCAT Job Tasks for executing parallel code regions.
Syntax
Definition:
FUNCTION F_VN_Histogram : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDestHistogram : Reference To ITcVnContainer;
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
ipSrcImage |
Source image | |
ipDestHistogram |
Reference To ITcVnContainer |
Returns a container with a multi-channel histogram, where every channel is represented as a vector of UDINT (ContainerType_Vector_Vector_UDINT. Non-zero interface pointers are reused.) |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
Further information
The function F_VN_Histogram
calculates the histogram of the input image channel by channel.
Parameter
Input image
The input image ipSrcImage
can have any format.
Histogram
The calculated multichannel histogram is returned as a container ipDestHistogram
of the type ContainerType_Vector_Vector_UDINT
. Each sub-element corresponds to the histogram of one channel. Each container of the histogram is represented as a UDINT
, which specifies the number of pixels belonging to the container.
Expert parameters
The expert version F_VN_HistogramExp contains additional parameters.
Application
The determination of the most frequently occurring pixel value in a grayscale image looks like this, for example:
VAR
ipDestHistograms : ITcVnContainer;
ipSingleHistogram : ITcVnContainer;
nIndex : ULINT;
ipIterator : ITcVnBidirectionalIterator;
END_VAR
hr := F_VN_Histogram(
ipSrcImage := ipImageIn,
ipDestHistogram := ipHistograms,
hrPrev := hr
);
hr := F_VN_GetAt_ITcVnContainer(ipHistograms, ipSingleHistogram, 0, hr);
hr := F_VN_MaxElement(ipSingleHistogram, ipIterator, nIndex, hr);
// nIndex now contains the most frequent pixel value in ipImageIn.
Samples
- Handling histograms
Required License
TC3 Vision Base
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.54 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |