Developer Reference

  • 2020
  • 07/15/2020
  • Public Content
Contents

MorphOpen

Opens an image.

Syntax

IppStatus ippiMorphOpen_16u_C1R_L(const Ipp16u*
pSrc
, IppSizeL
srcStep
, Ipp16u*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp16u
borderValue[1]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
IppStatus ippiMorphOpen_16s_C1R_L(const Ipp16s*
pSrc
, IppSizeL
srcStep
, Ipp16s*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp16s
borderValue[1]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
IppStatus ippiMorphOpen_1u_C1R_L(const Ipp8u*
pSrc
, IppSizeL
srcStep
, int
srcBitOffset
, Ipp8u*
pDst
, IppSizeL
dstStep
, int
dstBitOffset
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp8u
borderValue[1]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
IppStatus ippiMorphOpen_8u_C1R_L(const Ipp8u*
pSrc
, IppSizeL
srcStep
, Ipp8u*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp8u
borderValue[1]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
IppStatus ippiMorphOpen_8u_C3R_L(const Ipp8u*
pSrc
, IppSizeL
srcStep
, Ipp8u*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp8u
borderValue[3]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
IppStatus ippiMorphOpen_8u_C4R_L(const Ipp8u*
pSrc
, IppSizeL
srcStep
, Ipp8u*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp8u
borderValue[4]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
IppStatus ippiMorphOpen_32f_C1R_L(const Ipp32f*
pSrc
, IppSizeL
srcStep
, Ipp32f*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp32f
borderValue[1]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u*
pBuffer
);
IppStatus ippiMorphOpen_32f_C3R_L(const Ipp32f*
pSrc
, IppSizeL
srcStep
, Ipp32f*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp32f
borderValue[3]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
IppStatus ippiMorphOpen_32f_C4R_L(const Ipp32f*
pSrc
, IppSizeL
srcStep
, Ipp32f*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, const Ipp32f
borderValue[4]
, const IppiMorphAdvStateL*
pMorphSpec
, Ipp8u* pBuffer
);
Include Files
ippcv_l.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
,
ippi.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
,
ippi.lib
Parameters
pSrc
Pointer to the source image ROI.
srcStep
Distance, in bytes, between the starting points of consecutive lines in the source image.
srcBitOffset
Offset, in bits, from the first byte of the source image row.
pDst
Pointer to the destination image ROI.
dstStep
Distance, in bytes, between the starting points of consecutive lines in the destination image.
dstBitOffset
Offset, in bits, from the first byte of the destination image row.
roiSize
Size of the source and destination image ROI.
borderType
Type of border. Possible values are:
ippBorderDefault
The border is set to
ippBorderConst
with
borderValue
=
MAX_VALUE
, where
MAX_VALUE
=
IPP_MAX_8U/16U/16S/32F/1U
ippBorderRepl
Border is replicated from the edge pixels.
ippBorderMirror
Border pixels are mirrored from the source image boundary pixels.
ippBorderConst
Values of all border pixels are set to a constant.
ippBorderFirstStageInMem
You can use this border type together with the
ippBorderRepl
,
ippBorderMirror
,
ippBorderConst
,
ippBorderDefault
types using the
|
operation. For the first stage, border pixels are obtained from the source image pixels in memory. For the second stage, the function uses the border type specified with the
|
operation.
Mixed borders are also supported. They can be obtained by the bitwise operation
OR
between any of the
ippBorderRepl
,
ippBorderConst
,
ippBorderDefault
, or
ippBorderMirror
values and the
ippBorderInMemTop
,
ippBorderInMemBottom
,
ippBorderInMemLeft
,
ippBorderInMemRight
modifiers.
borderValue
,
borderValue[3]
,
borderValue[4]
Constant value to assign to pixels of the constant border. This parameter is applicable only to the
ippBorderConst
border type.
pMorphSpec
Pointer to the morphology specification structure.
pBuffer
Pointer to the external buffer.
Description
Before using this function, you need to initialize the morphology specification structure using the
ippiMorphInit
function.
This function operates with ROI.
This function performs opening of a rectangular ROI area inside a one-, three-, or four-channel 2D image using the mask specified in the
pMorphSpec
structure.
The result is equivalent to successive dilation of the source image by the structured element (mask) and erosion by the reverted structured element.
The function can only process a ROI that does not exceed the maximum width and height
roiSize
specified by the initialization functions.
Return Values
ippStsNoErr
Indicates no error.
ippStsNullPtrErr
Indicates an error when one of the specified pointers is
NULL
.
ippStsSizeErr
Indicates an error condition when:
  • roiSize
    has a field with a zero or negative value
  • ROI width is more than ROI width passed to the initialization function
ippStsStepErr
Indicates an error condition when
srcStep
or
dstStep
is less than
roiSize.width
* <
pixelSize
>.
ippStsNotEvenStepErr
Indicates an error when one of the step values is not a multiple of an element size.
ippStsBadArgErr
Indicates an error when
borderType
has an illegal value.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804