FilterColumn

Filter with an integer vertical column kernel

Supported Technologies

MT, SSE2

Synopsis

FwStatus   fwiFilterColumn_8u_C1R ( const Fw8u * pSrc, int srcStep, Fw8u * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_8u_C3R ( const Fw8u * pSrc, int srcStep, Fw8u * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_8u_C4R ( const Fw8u * pSrc, int srcStep, Fw8u * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_8u_AC4R ( const Fw8u * pSrc, int srcStep, Fw8u * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_16s_C1R ( const Fw16s * pSrc, int srcStep, Fw16s * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_16s_C3R ( const Fw16s * pSrc, int srcStep, Fw16s * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_16s_C4R ( const Fw16s * pSrc, int srcStep, Fw16s * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_16s_AC4R ( const Fw16s * pSrc, int srcStep, Fw16s * pDst, int dstStep, FwiSize dstRoiSize, const Fw32s * pKernel, int kernelSize, int yAnchor, int divisor );
FwStatus   fwiFilterColumn_32f_C1R ( const Fw32f * pSrc, int srcStep, Fw32f * pDst, int dstStep, FwiSize dstRoiSize, const Fw32f * pKernel, int kernelSize, int yAnchor );
FwStatus   fwiFilterColumn_32f_C3R ( const Fw32f * pSrc, int srcStep, Fw32f * pDst, int dstStep, FwiSize dstRoiSize, const Fw32f * pKernel, int kernelSize, int yAnchor );
FwStatus   fwiFilterColumn_32f_C4R ( const Fw32f * pSrc, int srcStep, Fw32f * pDst, int dstStep, FwiSize dstRoiSize, const Fw32f * pKernel, int kernelSize, int yAnchor );
FwStatus   fwiFilterColumn_32f_AC4R ( const Fw32f * pSrc, int srcStep, Fw32f * pDst, int dstStep, FwiSize dstRoiSize, const Fw32f * pKernel, int kernelSize, int yAnchor );

Parameters

divisor   An integer value by which a result is divided.
dstRoiSize   Destination image ROI size.
dstStep   Destination buffer step size (width of the buffer in bytes).
kernelSize   Specifies the size of the kernel used in calculations.
pDst   Pointer to a location in a destination buffer.
pKernel   Pointer to the kernel array.
pSrc   Pointer to a location in a source buffer.
srcStep   Source buffer step size (width of the buffer in bytes).
yAnchor   Anchor cell that specifies the vertical alignment of the kernel with respect to the input pixel.

Description

These functions step through an ROI in a source buffer, calculate the sum of products of the kernel values and the corresponding pixel values in an area defined by the kernel size and anchor coordinate, then divide by the divisor.

The filtered data is written to a destination buffer.

The vertical column kernel is an array of signed 32-bit integer values; the anchor coordinate location is relative to the bottom of the kernel.

Functions that operate on 8-bit unsigned data assume that the kernel values are small (in the -4096 to 4096 range).

If the results of the intermediate calculations exceed 24 bits, calculation errors may occur.

For very small kernel values, the functions use very fast code, at the expense of accuracy (+/- 1.5).