DilateBorderReplicate

Performs dilation of an image.

Syntax

IppStatus ippiDilateBorderReplicate_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, IppiBorderType borderType, IppiMorphState* pState);

Supported values for mod:

8u_C1R 32f_C1R
8u_C3R 32f_C3R
8u_C4R 32f_C4R

Parameters

pSrc

Pointer to the source image ROI.

srcStep

Distance in bytes between starts of consecutive lines in the source image.

pDst

Pointer to the destination image ROI.

dstStep

Distance in bytes between starts of consecutive lines in the destination image.

roiSize

Size of the source and destination image ROI.

borderType

Type of border; the possible value is ippBorderRepl, which means that a replicated border is used.

pState

Pointer to the morphology state structure.

Description

The function ippiDilateBorderReplicate is declared in the ippcv.h It operates with ROI (see Regions of Interest in Intel IPP).

This function performs dilation of a rectangular ROI area inside a one-, three-, or four-channel 2D image using a specified in the morphology state structure pState mask and the anchor cell. This structure must be initialized by the functions MorphologyInitAlloc or MorphologyInit beforehand.

The output pixel is set to the maximum of the corresponding input pixel and its neighboring pixels that are picked out by the nonzero mask values.

Example “Using the Morphlogy Functions” shows how to use the function ippiDilateBorderReplicate_8u_C1R.

Warning iconWarning

The function can process only images with ROI that does not exceed the specified by the initialization functions maximum width roiWidth.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or a warning.

ippStsNullPtrErr

Indicates an error condition if one of the specified pointers is NULL.

ippStsSizeErr

Indicates an error condition if roiSize has a field with a zero or negative value, or if roiSize.width is greater than maximum ROI roiWidth passed to the initialization functions.

ippStsStepErr

Indicates an error condition if srcStep or dstStep is less than roiSize.width * < pixelSize>.

ippStsNotEvenStepErr

Indicates an error condition if one of the step values is not divisible by 4 for floating-point images..

ippStsBorderErr

Indicates an error condition if borderType has an illegal value.

Using the Morphlogy Functions

void func_morf()
{
    IppiMorphState* ppState;
    IppiSize roiSize = {5, 5};
    Ipp8u pMask[3*3] = {1, 1, 1,
                        1, 0, 1,
                        1, 1, 1};
    IppiSize maskSize = {3, 3};
    IppiPoint anchor = {1, 1};
    Ipp8u pSrc[5*5] = { 1, 2, 4, 1, 2,
                        5, 1, 2, 1, 2,
                        1, 2, 1, 2, 1,
                        2, 1, 5, 1, 2};
    int srcStep = 5;
    int dstStep = 5;
    Ipp8u pDst[5*5];
    int dstSize = 5;

    ippiMorphologyInitAlloc_8u_C1R( roiSize.width, pMask, maskSize, anchor,
                                      &ppState);
    ippiDilateBorderReplicate_8u_C1R( pSrc, srcStep,  pDst, dstStep, roiSize,
                                        ippBorderRepl, ppState);

    ippiMorphologyFree(ppState);
}
Result: pDst-> 5 5 4 4 2
               5 5 4 4 2
               5 5 5 5 2
               2 5 2 5 2
               2 5 5 5 2


Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.