F_VN_HistogramExp
Calculate the (multi-channel) histogram of an image. (expert function)
Can use available TwinCAT Job Tasks for executing parallel code regions.
Syntax
Definition:
FUNCTION F_VN_HistogramExp : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDestHistogram : Reference To ITcVnContainer;
END_VAR
VAR_IN_OUT
nBins : UDINT;
fLowerBound : LREAL;
fUpperBound : LREAL;
END_VAR
VAR_INPUT
ipMask : ITcVnImage;
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.) |
ipMask |
Source image mask (TCVN_ET_USINT, 1 channel. Mask is optional, set to 0 if not required.) | |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
In/Outputs
Name |
Type |
Description |
---|---|---|
nBins |
UDINT |
Desired number of bins or 0 to keep the default for the corresponding image format (in) and default number of bins (out) |
fLowerBound |
LREAL |
Lower (inclusive) boundary of the 0-th histogram bin (in), or receive the default if fLowerBound AND fUpperBound are set to 0 (out) |
fUpperBound |
LREAL |
Upper (exclusive) boundary of the last histogram bin nBins-1 (in), or receive the default if fLowerBound AND fUpperBound are set to 0 (out) |
Weiterführende Informationen
Die Funktion F_VN_HistogramExp
ist die Expert-Variante von F_VN_Histogram. Sie enthält zusätzliche Parameter.
Parameter
Eingangsbild
Das Eingangsbild ipSrcImage
darf jedes beliebige Format haben.
Histogramm
Das errechnete mehr-kanalige Histogramm wird als Container ipDestHistogram
des Typs ContainerType_Vector_Vector_UDINT
zurückgegeben. Jedes Sub-Element entspricht dem Histogramm eines Kanals. Jeder Behälter des Histogramms wird als UDINT
repräsentiert, die die Anzahl der zum Behälter gehörenden Pixel angibt.
Behälter
Die Anzahl nBins
definiert, in wie viele Behälter das zu betrachtende Pixelspektrum aufgeteilt werden soll.
Grenzen
Die untere Grenze fLowerBound
und die obere Grenze fUpperBound
definieren, welche Pixelwerte bei der Erstellung des Histogramms berücksichtig werden.
Maske
Die Maske ipMask
definiert, welche Pixel des Eingangsbilds ipSrcImage
in der Berechnung des Histogramms berücksichtigt werden. Sie wird durch ein 1-kanaliges Bild mit Element-Typ USINT
beschrieben, das dieselbe Größe wie das Eingangsbild ipSrcImage
besitzt. Alle Pixel, die im Maskenbild einen Wert <> 0
haben, werden bei der Berechnung des Histogramms berücksichtigt.
Anwendung
Die Berechnung eines Histogramms mit 10 Behältern für den Wertebereich 100-200 mit einer kreisförmigen Maske sieht z. B. so aus:
VAR
ipImageMask : ITcVnImage;
END_VAR
// Create mask image with a circle at image center.
hr := F_VN_CopyImage(ipImageIn, ipImageMask, hr);
hr := F_VN_SetPixels(ipImageMask, aBlack, hr);
hr := F_VN_DrawCircle(400, 300, 300, ipImageMask, aWhite, -1, hr);
hr := F_VN_HistogramExp(
ipSrcImage := ipImageIn,
ipDestHistogram := ipHistograms,
nBins := 10,
fLowerBound := 100,
fUpperBound := 201,
ipMask := ipImageMask,
hrPrev := hr
);
Beispiele
- Umgang mit Histogramm
Required License
TC3 Vision Base
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.59 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |