iwiFilterBilateral
iwiFilterBilateral
Syntax
typedef struct _IwiFilterBilateralParams
{
IppiFilterBilateralType filter;
IppiDistanceMethodType distMethod;
} IwiFilterBilateralParams;
static IW_INLINE void iwiFilterBilateral_SetDefaultParams(
IwiFilterBilateralParams *pParams
)
IW_DECL(IppStatus) iwiFilterBilateral(
const IwiImage *pSrcImage,
IwiImage *pDstImage,
int radius,
Ipp32f valSquareSigma,
Ipp32f posSquareSigma,
const IwiFilterBilateralParams *pAuxParams,
IppiBorderType border,
const Ipp64f *pBorderVal,
const IwiTile *pTile
);
Parameters
- pSrcImage
- Pointer to the source image.
- pDstImage
- Pointer to the destination image.
- radius
- Radius of the circular neighborhood that contains pixels for calculation.
- valSquareSigma
- Square of the Sigma value for the factor function for pixel intensity.
- posSquareSigma
- Square of the Sigma value for the factor function for pixel position.
- 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.
- ippBorderMirror
- Border pixels are mirrored from the source image boundary pixels.
- ippBorderInMem
- Border is obtained from the source image pixels in memory.
- pBorderVal
- Pointer to an array of values to assign to pixels of the constant border, one element of the array for each channel of the image. This parameter is applicable only to theippBorderConstborder type and can beNULLfor other border types.
- pTile
- Pointer to theIwiTilestructure for tiling. IfNULL, the whole image is processed.
Auxiliary Arguments
Argument | Default Value | Description |
---|---|---|
filter | ippiFilterBilateralGauss | Type of the bilateral filter. The only supported value is ippiFilterBilateralGauss . |
distMethod | ippDistNormL1 | Method for definition of distance between pixel intensities. The only supported value is ippDistNormL1 . |
Description
This function performs bilateral filtering of an image.
This function supports the following features:
Feature | Support |
---|---|
Internal threading | Yes (check the IW_ENABLE_THREADING_LAYER definition) |
Manual tiling | Yes |
IwiTile simple tiling | Yes |
IwiTile pipeline tiling | Yes |
Return Values
- ippStsSizeErr
- Values of thesizefields are illegal.
- ippStsBadArgErr
- valSquareSigmaorposSquareSigmais less than or equal to 0.
- ippStsMaskSizeErr
- Theradiusvalue is less than or equal to 0.
- ippStsBorderErr
- Thebordervalue is illegal.
- ippStsDataTypeErr
- ThedataTypevalue is illegal.
- ippStsNumChannelsErr
- Thechannelsvalue is illegal.
- ippStsNotEvenStepErr
- The step value is not divisible by size of elements.
- ippStsNotSupportedModeErr
- Thefilterand/ordistMethodvalue is not supported.
- ippStsNoMemErr
- Failed to allocate memory.
- ippStsInplaceModeNotSupportedErr
- In-place operation is not supported:pSrcImageis equal topDstImage.
- ippStsNullPtrErr
- At least one of the pointers (exceptpBorderValandpTile) isNULL.
- ippStsNoErr
- No errors.