F_VN_BilateralFilter
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
Inputs
Name |
Type |
Description |
---|---|---|
ipSrcImage |
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 indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
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 |
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 |