FilterMaxBorder, FilterMinBorder
Filter an image using the maximum/minimum filter.
Syntax
Case 1: Operating on one-channel data
IppStatus ippiFilterMaxBorder_8u_C1R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp8u
borderValue
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16s_C1R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp16s
borderValue
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16u_C1R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp16u
borderValue
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_32f_C1R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp32f
borderValue
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_8u_C1R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp8u
borderValue
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16s_C1R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp16s
borderValue
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16u_C1R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp16u
borderValue
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_32f_C1R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, Ipp32f
borderValue
, Ipp8u*
pBuffer
);
Case 2: Operating on multi-channel data
IppStatus ippiFilterMaxBorder_8u_C3R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp8u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16s_C3R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16s
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16u_C3R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_32f_C3R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp32f
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_8u_AC4R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp8u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16s_AC4R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16s
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16u_AC4R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_32f_AC4R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp32f
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_8u_C4R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp8u
pBorderValue[4]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16s_C4R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16s
pBorderValue[4]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_16u_C4R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16u
pBorderValue[4]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMaxBorder_32f_C4R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp32f
pBorderValue[4]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_8u_C3R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp8u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16s_C3R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16s
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16u_C3R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_32f_C3R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp32f
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_8u_AC4R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp8u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16s_AC4R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16s
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16u_AC4R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16u
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_32f_AC4R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp32f
pBorderValue[3]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_8u_C4R(const Ipp8u*
pSrc
, int
srcStep
, Ipp8u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp8u
pBorderValue[4]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16s_C4R(const Ipp16s*
pSrc
, int
srcStep
, Ipp16s*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16s
pBorderValue[4]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_16u_C4R(const Ipp16u*
pSrc
, int
srcStep
, Ipp16u*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp16u
pBorderValue[4]
, Ipp8u*
pBuffer
);
IppStatus ippiFilterMinBorder_32f_C4R(const Ipp32f*
pSrc
, int
srcStep
, Ipp32f*
pDst
, int
dstStep
, IppiSize
dstRoiSize
, IppiSize
maskSize
, IppiBorderType
borderType
, const Ipp32f
pBorderValue[4]
, Ipp8u*
pBuffer
);
Include Files
ippi.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
Parameters
- pSrc
- Pointer to the source image ROI.
- srcStep
- Distance, in bytes, between the starting points of consecutive lines in the source image.
- pDst
- Pointer to the destination image ROI.
- dstStep
- Distance, in bytes, between the starting points of consecutive lines in the destination image.
- dstRoiSize
- Size of the source and destination ROI, in pixels.
- maskSize
- Size of the filter kernel.
- borderType
- Type of border. Possible values are:
- 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.
Mixed borders are also supported. They can be obtained by the bitwise operationORbetween any of theippBorderRepl,ippBorderConst, orippBorderMirrorvalues and theippBorderInMemTop,ippBorderInMemBottom,ippBorderInMemLeft,ippBorderInMemRightvalues. - borderValue
- Constant value to assign to pixels of the constant border. This parameter is applicable only to theippBorderConstborder type.
- pBorderValue[3],pBorderValue[4]
- Pointer to constant values to assign to pixels of the constant border. This parameter is applicable only to theippBorderConstborder type.
- pBuffer
- Pointer to the work buffer.
Description
Before using the
ippiFilterMaxBorder
and ippiFilterMinBorder
functions, you need to compute the size of the work buffer pBuffer
using the ippiFilterMaxBorderGetBufferSize
or ippiFilterMinBorderGetBufferSize
functions, respectively. These functions operate with ROI (see Regions of Interest in Intel IPP).
The
ippiFilterMaxBorder
and ippiFilterMinBorder
functions apply the maximum/minimum filters, respectively, to the source image ROI. The size of the source image ROI is equal to the destination image ROI size dstRoiSize
. The values of border pixels are assigned in accordance with the borderType
and borderValue
parameters. The kernel size of the filter is arbitrary and depends on the mask
value.The anchor cell is the center cell of the kernel, highlighted in red. The anchor cell is defined as:
x
=(maskSize.width
- 1)/2y
=(maskSize.height
- 1)/2where
(
x
, y
) are cell coordinates.Return Values
- ippStsNoErr
- Indicates no error.
- ippStsNullPtrErr
- Indicates an error when one of the specified pointers isNULL.
- ippStsSizeErr
- Indicates an error whendstRoiSizeis negative, or equal to zero.
- ippStsBorderErr
- Indicates an error whenmaskis less than, or equal to zero.
- ippStsBorderErr
- Indicates an error whenborderTypehas an illegal value.