MorphOpenBorder
ComplexImageMorphology

Erosion followed by Dilation with border control. More...

## Functions

NppStatus | nppiMorphOpenBorder_8u_C1R (const Npp8u *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp8u *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 1 channel 8-bit unsigned integer morphological open with border control. More...
NppStatus | nppiMorphOpenBorder_8u_C3R (const Npp8u *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp8u *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 3 channel 8-bit unsigned integer morphological open with border control. More...
NppStatus | nppiMorphOpenBorder_8u_C4R (const Npp8u *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp8u *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 4 channel 8-bit unsigned integer morphological open with border control. More...
NppStatus | nppiMorphOpenBorder_16u_C1R (const Npp16u *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp16u *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 1 channel 16-bit unsigned integer morphological open with border control. More...
NppStatus | nppiMorphOpenBorder_16s_C1R (const Npp16s *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp16s *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 1 channel 16-bit signed integer morphological open with border control. More...
NppStatus | nppiMorphOpenBorder_32f_C1R (const Npp32f *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp32f *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 1 channel 32-bit floating point morphological open with border control. More...
NppStatus | nppiMorphOpenBorder_32f_C3R (const Npp32f *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp32f *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 3 channel 32-bit floating point morphological open with border control. More...
NppStatus | nppiMorphOpenBorder_32f_C4R (const Npp32f *pSrc, int nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp32f *pDst, int nDstStep, NppiSize oSizeROI, const Npp8u *pMask, NppiSize oMaskSize, NppiPoint oAnchor, Npp8u *pBuffer, NppiBorderType eBorderType)
| 4 channel 32-bit floating point morphological open with border control. More...

## Detailed Description

Erosion followed by Dilation with border control.

Morphological open computes the output pixel as the minimum pixel value of the pixels under the mask followed by a second pass using the result of the first pass as input which outputs the maximum pixel value of the pixels under the same mask. Pixels who's corresponding mask values are zero do not participate in the minimum or maximum search.

If any portion of the mask overlaps the source image boundary the requested border type operation is applied to all mask pixels which fall outside of the source image. The mask is centered over the source image pixel being tested.

Before calling any of the MorphOpenBorder functions the application first needs to call the corresponding MorphGetBufferSize to determine the amount of device memory to allocate as a working buffer. The allocated device memory is then passed as the pBuffer parameter to the corresponding MorphOpenBorder function.

Use the oSrcOffset and oSrcSize parameters to control where the border control operation is applied to the source image ROI borders.

Currently only the NPP_BORDER_REPLICATE border type operation is supported.

### Common parameters for nppiMorphOpenBorder functions include:

Parameters

  pSrc | Source-Image Pointer.
  nSrcStep | Source-Image Line Step.
  oSrcSize | Source image width and height in pixels relative to pSrc.
  oSrcOffset | Source image starting point relative to pSrc.
  pDst | Destination-Image Pointer.
  nDstStep | Destination-Image Line Step.
  oSizeROI | Region-of-Interest (ROI).
  pMask | Pointer to the start address of the mask array
  oMaskSize | Width and Height mask array.
  oAnchor | X and Y offsets of the mask origin frame of reference w.r.t the source pixel.
  pBuffer | Pointer to device memory scratch buffer at least as large as value returned by the corresponding MorphGetBufferSize call.
  eBorderType | The border type operation to be applied at source image border boundaries.

Returns
  Image Data Related Error Codes, ROI Related Error Codes

## Function Documentation

NppStatus nppiMorphOpenBorder_16s_C1R | ( | const Npp16s * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp16s * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

1 channel 16-bit signed integer morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

NppStatus nppiMorphOpenBorder_16u_C1R | ( | const Npp16u * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp16u * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

1 channel 16-bit unsigned integer morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

NppStatus nppiMorphOpenBorder_32f_C1R | ( | const Npp32f * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp32f * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

1 channel 32-bit floating point morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

NppStatus nppiMorphOpenBorder_32f_C3R | ( | const Npp32f * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp32f * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

3 channel 32-bit floating point morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

NppStatus nppiMorphOpenBorder_32f_C4R | ( | const Npp32f * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp32f * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

4 channel 32-bit floating point morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

NppStatus nppiMorphOpenBorder_8u_C1R | ( | const Npp8u * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp8u * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

1 channel 8-bit unsigned integer morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

NppStatus nppiMorphOpenBorder_8u_C3R | ( | const Npp8u * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp8u * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

3 channel 8-bit unsigned integer morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

NppStatus nppiMorphOpenBorder_8u_C4R | ( | const Npp8u * | pSrc,
|  | int | nSrcStep,
|  | NppiSize | oSrcSize,
|  | NppiPoint | oSrcOffset,
|  | Npp8u * | pDst,
|  | int | nDstStep,
|  | NppiSize | oSizeROI,
|  | const Npp8u * | pMask,
|  | NppiSize | oMaskSize,
|  | NppiPoint | oAnchor,
|  | Npp8u * | pBuffer,
|  | NppiBorderType | eBorderType
| ) |  |

4 channel 8-bit unsigned integer morphological open with border control.

For common parameter descriptions, see Common parameters for nppiMorphOpenBorder functions.

Copyright © 2009-2017 NVIDIA Corporation