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 |
Further information
The function F_VN_SeparableCustomFilter
applies a separable 2D filter to the input image.
Algorithm
A separable 2D filter can be combined from two 1D filters. It is more efficient to apply a 1D filter to an image twice than to apply a 2D filter once. For example, the well-known Sobel filter can be constructed as follows from two separate one-dimensional filters:
Parameter
Input image
The input image ipSrcImage
may have any available format.
Result image
The result image ipDestImage
has the same size as the input image ipSrcImage
, but the pixel format is determined by the result depth eDestDepth
.
X and Y kernel
The two 1-dimensional filter kernels stKernelX
and stKernelY
are transferred as a matrix. Permitted element types of the matrix are TCVN_ET_REAL
and TCVN_ET_LREAL
. Corresponding matrices of the type TcVnMatrix can be created with the aid of the function F_VN_InitMatrixStruct.
Expert parameters
The expert version F_VN_SeparableCustomFilterExp contains additional parameters.
Application
The creation and application of a separable 2D filter looks like this, for example:
hr := F_VN_SeparableCustomFilter(
ipSrcImage := ipImageIn,
ipDestImage := ipImageRes,
eDestDepth := TCVN_ET_USINT,
stKernelX := stKernelMatrixX,
stKernelY := stKernelMatrixY,
hrPrev := hr
);
Samples
- User-defined filters
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 |