F_VN_SeparableCustomFilter

F_VN_SeparableCustomFilter 1:

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

F_VN_SeparableCustomFilter 2: Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

Source image

ipDestImage

Reference To ITcVnImage

Destination image (An appropriate destination image will be created if required.)

eDestDepth

ETcVnElementType

Destination image depth

hrPrev

HRESULT

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

F_VN_SeparableCustomFilter 3: In/Outputs

Name

Type

Description

stKernelX

TcVnMatrix

1D custom row-filter kernel with values of type REAL or LREAL

stKernelY

TcVnMatrix

1D custom column-filter kernel with values of type REAL or LREAL

F_VN_SeparableCustomFilter 4: Return value

HRESULT

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:

F_VN_SeparableCustomFilter 5:
F_VN_SeparableCustomFilter 6:

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

Required License

TC3 Vision Base

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1. 4024.44 or later

PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU

Tc3_Vision