IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit

gradient computation on a 2d image using morphological operations More...

IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::morphoGradient2dImg (const image::ImageConstPtr &pInImg, const StructuringElementXYInfoConstPtr &pInSEXY)
 wrapper function for gradient computation on a 2d image using morphological operations More...
 
IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::morphoGradient2dImg (const image::ImageConstPtr &pInImg, const StructuringElementXYInfoConstPtr &pInSEXY, const image::ImagePtr &pOutImg)
 wrapper function for gradient computation on a 2d image using morphological operations More...
 

Detailed Description

gradient computation on a 2d image using morphological operations

A morphological gradient is the difference between the dilation and the erosion of a given image. It is a fast way to compute the gradient of an image. Output image pixel values, given a structuring element $ InSEXY $, are given by the following formula :

\[ OutImg = G(InImg)_{InSEXY} = InImg \oplus InSEXY - InImg \ominus InSEXY \]

Note
Behavior of this algorithm is specialized using specific morphological structuring elements (see 2d structuring elements for more informations about these shapes).
Please refer to Usage for examples of usage of different types of specific structuring elements during morphological operations.

Here is an example of a morphological gradient 2d operation applied to a gray scale input image with a circular structuring element with radius 2 :

MorphoGradient2dImg.png

This morphological operation can also be used to enhance gradients in a specific direction. This is illustrated with following example where the same input image has been processed with a linear structuring element with radius 2 and a 60 degrees orientation :

MorphoGradient2dImgLinear.png
See also
http://en.wikipedia.org/wiki/Morphological_gradient
Note
This algorithm is associated with two temporary working images ipsdk::imaproc::attr::OutOptWk1Img and ipsdk::imaproc::attr::OutWk1Img.

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InImg [Input] image for processing operation X
ipsdk::imaproc::attr::InSEXY [Input] structuring element xy for processing operation X
ipsdk::imaproc::attr::OutOptWk1Img [Output Optional] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutWk1Img [Output] Temporary working image for algorithm ipsdk::imaproc::duplicateInOut (_pOutWk1Img, _pInImg)
ipsdk::imaproc::attr::OutImg [Output] image for processing operation ipsdk::imaproc::duplicateInOut (_pOutImg, _pInImg)

Global Rule description

Global rule description for algorithm :
((ipsdk::imaproc::matchSizeAndType (_pInImg,_pOutImg)) && 
 (ipsdk::imaproc::matchSizeAndType (_pInImg,_pOutWk1Img)) && 
 (ipsdk::imaproc::noInSitu (_pInImg,_pOutImg)) && 
 (ipsdk::imaproc::noInSitu (_pInImg,_pOutWk1Img)) && 
 (ipsdk::processor::ifIsSet (
   _pOutOptWk1Img, (
    ipsdk::imaproc::matchSizeAndType (_pInImg,_pOutOptWk1Img)) && 
   (ipsdk::imaproc::noInSitu (_pInImg,_pOutOptWk1Img)))))

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLBasicMorphology as morpho

Code Example

# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# definition of used structuring element
inSE = PyIPSDK.circularSEXYInfo(8)
# morphological gradient 2d image computation
outImg = morpho.morphoGradient2dImg(inImg, inSE)

Example of C++ code :

Example informations

Associated library

IPSDKIPLBasicMorphology

Header file

Code Example

// create a 5x7 rectangular structuring element
// opening input image
ImagePtr pInImg = loadTiffImageFile(inputImgPath);
// compute morphological gradient on input image
ImagePtr pOutImg = morphoGradient2dImg(pInImg, pInSEXY);
See also
MorphoGradient2dImgLvl1

Function Documentation

◆ morphoGradient2dImg() [1/2]

IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::morphoGradient2dImg ( const image::ImageConstPtr pInImg,
const StructuringElementXYInfoConstPtr pInSEXY 
)

wrapper function for gradient computation on a 2d image using morphological operations

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ morphoGradient2dImg() [2/2]

IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::morphoGradient2dImg ( const image::ImageConstPtr pInImg,
const StructuringElementXYInfoConstPtr pInSEXY,
const image::ImagePtr pOutImg 
)

wrapper function for gradient computation on a 2d image using morphological operations

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure