F_VN_BilateralFilter

F_VN_BilateralFilter 1:

Apply a Bilateral filter to smooth the image but preserve edges.
Can use available TwinCAT Job Tasks for executing parallel code regions.

Syntax

Definition:

FUNCTION F_VN_BilateralFilter : HRESULT
VAR_INPUT
    ipSrcImage  : ITcVnImage;
    ipDestImage : Reference To ITcVnImage;
    nDiameter   : DINT;
    fSigmaColor : LREAL;
    fSigmaSpace : LREAL;
    hrPrev      : HRESULT;
END_VAR

F_VN_BilateralFilter 2: Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

Source image

ipDestImage

Reference To ITcVnImage

Destination image (Must be different from ipSrcImage! An appropriate destination image will be created if required.)

nDiameter

DINT

Diameter of the pixel neighborhood used for filtering (e.g. 5, 7, 9). If <= 0, it is automatically chosen dependend on fSigmaSpace.

fSigmaColor

LREAL

Sigma used for color space filtering (> 0). A larger value means that farther colors are mixed together.

fSigmaSpace

LREAL

Sigma used for coordinate space filtering (> 0). A larger value means that farther pixels can influence each other.

hrPrev

HRESULT

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

F_VN_BilateralFilter 3: Return value

HRESULT

Weiterführende Informationen

Die Funktion F_VN_BilateralFilter wendet einen bilateralen Filter auf das Originalbild an. Der Filter glättet das Bild und reduziert Rauschen und erhält dabei die Kanten im Bild.

Parameter

Originalbild

Das Originalbild ipSrcImage muss vom Element-Typ TCVN_ET_USINT oder einem Fließkomma-Typ sein und 1 oder 3 Kanäle besitzen.

Ergebnisbild

Das Ergebnisbild ipDestImage muss ein anderer Interface Pointer als das Originalbild ipSrcImage sein!

Filter-Durchmesser

Der Filter-Durchmesser nDiameter bestimmt die Größe eines Filterbereichs. Es wird ein ungerader Wert erwartet. Wenn nDiameter = 0 ist, dann wird der Filter-Durchmesser automatisch auf Basis von fSigmaSpace berechnet.

Farb-Bereich

Dieser Wert darf nicht 0 sein.

Raum-Bereich

Dieser Wert darf nicht 0 sein.

Expert-Parameter

Weitere Parameter finden Sie in der Expert-Variante F_VN_BilateralFilterExp.

Anwendung

Eine Anwendung dieser Funktion kann z. B. wie folgt aussehen:

hr := F_VN_BilateralFilter(
    ipSrcImage      :=  ipImage,
    ipDestImage     :=  ipImageRes,
    nDiameter       :=  nDiameter,
    fSigmaColor     :=  fSigmaColor,
    fSigmaSpace     :=  fSigmaSpace,
    hrPrev          :=  hr
);

Das unbearbeitete Originalbild (1. Zeile) weist im Detail bereits feine Strukturen auf den Oberflächen der Zahnräder auf. Um die Filterwirkungen zu verdeutlichen wurden zusätzliche Störungen durch ein Gauss- (2. Zeile) und ein Salz- und Pfeffer-Rauschen (3. Zeile) zu dem Originalbild hinzugefügt.

Originalbilder

Ergebnisbilder:

Diameter = 7

Sigma = 100

F_VN_BilateralFilter 4:

F_VN_BilateralFilter 5:

F_VN_BilateralFilter 6:

F_VN_BilateralFilter 7:

F_VN_BilateralFilter 8:

F_VN_BilateralFilter 9:

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