iwiFilter
Syntax
typedef struct _IwiFilterParams
{
double divisor;
int offset;
IppHintAlgorithm algoMode;
} IwiFilterParams;
static IW_INLINE void iwiFilter_SetDefaultParams(
IwiFilterParams *pParams
)
IW_DECL(IppStatus) iwiFilter(
const IwiImage *pSrcImage,
IwiImage *pDstImage,
const IwiImage *pKernel,
const IwiFilterParams *pAuxParams,
IwiBorderType border,
const Ipp64f *pBorderVal,
const IwiTile *pTile
);
Parameters
- pSrcImage
- Pointer to the source image.
- pDstImage
- Pointer to the destination image.
- pKernel
- Pointer to the filter kernel image. Kernel must be continuous, one-channel, and of16sor32ftype.
- pAuxParams
- Pointer to the auxiliary parameters structure. IfNULL, default parameters are used.
- border
- Extrapolation algorithm for out of image pixels processing. Supported values:
- ippBorderConst
- Values of all border pixels are set to a constant.
- ippBorderRepl
- Border is replicated from the edge pixels.
- ippBorderInMem
- Border is obtained from the source image pixels in memory.
- ippBorderMirror
- Border pixels are mirrored from the source image boundary pixels.
- pBorderVal
- Pointer to the array of constant values forippBorderConst: one element for each channel. Can beNULLfor any other border type.
- pTile
- Pointer to theIwiTilestructure for tiling. IfNULL, the whole image is processed.
Auxiliary Arguments
Argument | Default Value | Description |
---|---|---|
divisor | 0 | Value by which the computed result is divided for 16s kernel type. If divisor is equal to zero and the sum of the kernel elements is not equal to zero, then the result is normalized by the sum of the kernel elements. Only integer values are supported. |
offset | 0 | An offset value that is added to the final signed result before converting it to unsigned for 8u and 16u data types. |
roundMode | IppRndNear | Rounding mode. |
algoMode | IppAlgHintNone | Flag enabling intermediate conversions to extend data types and channels support. |
Description
This function performs filtering of an image with an arbitrary kernel.
This function supports the following features:
Feature | Support |
---|---|
Data types | 8u , 16u , 16s , 32f |
In-place mode | No |
64-bit sizes | No |
Internal threading | No |
Manual tiling | Yes |
IwsTile simple tiling | Yes |
IwsTile pipeline tiling | Yes |
Return Values
- ippStsBorderErr
- Thebordervalue is illegal.
- ippStsDataTypeErr
- ThedataTypevalue is illegal.
- ippStsNumChannelsErr
- The value for channels is illegal.
- ippStsNotEvenStepErr
- The step value is not divisible by size of elements.
- ippStsNotSupportedModeErr
- The selected function mode is not supported.
- ippStsInplaceModeNotSupportedErr
- In-place operation is not supported:pSrcis equal topDst.
- ippStsNullPtrErr
- At least one of the pointers (exceptpTile) isNULL.
- ippStsNoErr
- No errors.