F_VN_HistogramExp

F_VN_HistogramExp 1:

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

F_VN_HistogramExp 2: Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

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

ITcVnImage

Source image mask (TCVN_ET_USINT, 1 channel. Mask is optional, set to 0 if not required.)

hrPrev

HRESULT

HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.)

F_VN_HistogramExp 3: 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)

F_VN_HistogramExp 4: Return value

HRESULT

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

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