F_VN_SeparableCustomFilter
Apply a separable custom filter to the image.
Syntax
Definition:
FUNCTION F_VN_SeparableCustomFilter : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDestImage : Reference To ITcVnImage;
eDestDepth : ETcVnElementType;
END_VAR
VAR_IN_OUT
stKernelX : TcVnMatrix;
stKernelY : TcVnMatrix;
END_VAR
VAR_INPUT
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
ipSrcImage |
Source image | |
ipDestImage |
Reference To ITcVnImage |
Destination image (An appropriate destination image will be created if required.) |
eDestDepth |
Destination image depth | |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
In/Outputs
Name |
Type |
Description |
---|---|---|
stKernelX |
1D custom row-filter kernel with values of type REAL or LREAL | |
stKernelY |
1D custom column-filter kernel with values of type REAL or LREAL |
Weiterführende Informationen
Die Funktion F_VN_SeparableCustomFilter
wendet einen trennbaren 2D-Filter auf das Eingangsbild an.
Algorithmus
Ein trennbarer 2D Filter kann aus zwei 1D Filtern kombiniert werden. Es ist effizienter 2-mal einen 1D Filter auf ein Bild anzuwenden als 1-mal einen 2D Filter. So kann z. B. der bekannte Sobel-Filter wie folgt aus 2 separaten eindimensionalen Filtern aufgebaut werden:
Parameter
Eingangsbild
Das Eingangsbild ipSrcImage
darf jedes verfügbare Format haben.
Ergebnisbild
Das Ergebnisbild ipDestImage
hat die gleiche Größe wie das Eingangsbild ipSrcImage
, das Pixelformat wird allerdings durch die Ergebnistiefe eDestDepth
bestimmt.
X- und Y-Kernel
Die beiden 1-dimensionalen Filter-Kernel stKernelX
und stKernelY
werden als Matrix übergeben. Erlaubte Element-Typen der Matrix sind TCVN_ET_REAL
und TCVN_ET_LREAL
. Entsprechende Matrizen vom Typ TcVnMatrix können mit Hilfe der Funktion F_VN_InitMatrixStruct erstellt werden.
Expert-Parameter
Die Expert-Variante F_VN_SeparableCustomFilterExp enthält zusätzliche Parameter.
Anwendung
Die Erstellung und Anwendung eines trennbaren 2D-Filters sieht z. B. so aus:
hr := F_VN_SeparableCustomFilter(
ipSrcImage := ipImageIn,
ipDestImage := ipImageRes,
eDestDepth := TCVN_ET_USINT,
stKernelX := stKernelMatrixX,
stKernelY := stKernelMatrixY,
hrPrev := hr
);
Beispiele
- Benutzerdefinierte Filter
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 |