IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit

Connected component image 2d labeling algorithm. More...

IPSDKIPLADVANCEDMORPHOLOGY_API ipsdk::image::ImagePtr ipsdk::imaproc::advmorpho::connectedComponent2dImg (const ipsdk::image::ImageConstPtr &pInBinLabImg)
 wrapper function for Connected component image 2d labeling algorithm More...
 
IPSDKIPLADVANCEDMORPHOLOGY_API ipsdk::image::ImagePtr ipsdk::imaproc::advmorpho::connectedComponent2dImg (const ipsdk::image::ImageConstPtr &pInBinLabImg, const ipsdk::eNeighborhood2dType &inOptNeighborhood2d)
 wrapper function for Connected component image 2d labeling algorithm More...
 
IPSDKIPLADVANCEDMORPHOLOGY_API ipsdk::ipUInt32 ipsdk::imaproc::advmorpho::connectedComponent2dImg (const ipsdk::image::ImageConstPtr &pInBinLabImg, const ipsdk::eNeighborhood2dType &inOptNeighborhood2d, const ipsdk::image::ImagePtr &pOutLabelImg)
 wrapper function for Connected component image 2d labeling algorithm More...
 

Detailed Description

Connected component image 2d labeling algorithm.

Connected component labeling algorithm allows to uniquely labeled subsets of connected components with respect to a given neighborhood policy.

Output labels start with 1 and are consecutive with respect to scanning order (from lower x then y to higher).

For more informations on used neighborhood 2d types report to 2d neighborhood models.

Resulting image buffer type must be one of the following :

Here is an example of connected component extraction operation applied to a binary input image (with 8 connexity neighborhood type) :

connectedComponent2dImg8Connexity.png

Here is an example of connected component extraction operation applied to a binary input image (with 4 connexity neighborhood type) :

connectedComponent2dImg4Connexity.png

The algorithm also allows to relabel a label image. This way all connected component will be assigned to a unique label.

Here is an example of relabel of a label image using the connected component algorithm in 2d case :

connectedComponent2dImgRelabel.png
Note
Last wrapper function returns number of extracted connected components (unique labels).
If number of extracted connected components exceed output image data type capacity (case of a number of connected components greater than 65535 and an output image associated to a ipsdk::image::eImageBufferType::eIBT_Label16 data type), output image data type is automatically upgraded to ipsdk::image::eImageBufferType::eIBT_Label32.
See also
http://en.wikipedia.org/wiki/Connected-component_labeling

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InBinLabImg [Input] binary or label image for processing operation X
ipsdk::imaproc::attr::InOptNeighborhood2d [Input optional] neighborhood 2d type for operation X
ipsdk::imaproc::attr::OutLabelImg [Output] label image for processing operation ipsdk::imaproc::duplicateInOut (_pOutLabelImg, _pInBinLabImg, ipsdk::image::eImageBufferType::eIBT_Label16)
ipsdk::imaproc::attr::OutMaxLabel [Output] maximum computed label value X

Global Rule description

Global rule description for algorithm :
ipsdk::imaproc::matchSize (_pInBinLabImg,_pOutLabelImg)

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLAdvancedMorphology as advmorpho

Code Example

# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# connected components 2d computation
outImg = advmorpho.connectedComponent2dImg(inImg)

Example of C++ code :

Example informations

Associated library

IPSDKIPLAdvancedMorphology

Header file

Code Example

// opening input image
ImagePtr pInBinImg = loadTiffImageFile(inputImgPath);
// compute connected component label image associated to input image
ImagePtr pOutLabelImg = connectedComponent2dImg(pInBinImg);
See also
ConnectedComponent2dImgLvl1
ConnectedComponent2dImgLvl2

Function Documentation

◆ connectedComponent2dImg() [1/3]

IPSDKIPLADVANCEDMORPHOLOGY_API ipsdk::image::ImagePtr ipsdk::imaproc::advmorpho::connectedComponent2dImg ( const ipsdk::image::ImageConstPtr pInBinLabImg)

wrapper function for Connected component image 2d labeling algorithm

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ connectedComponent2dImg() [2/3]

IPSDKIPLADVANCEDMORPHOLOGY_API ipsdk::image::ImagePtr ipsdk::imaproc::advmorpho::connectedComponent2dImg ( const ipsdk::image::ImageConstPtr pInBinLabImg,
const ipsdk::eNeighborhood2dType inOptNeighborhood2d 
)

wrapper function for Connected component image 2d labeling algorithm

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ connectedComponent2dImg() [3/3]

IPSDKIPLADVANCEDMORPHOLOGY_API ipsdk::ipUInt32 ipsdk::imaproc::advmorpho::connectedComponent2dImg ( const ipsdk::image::ImageConstPtr pInBinLabImg,
const ipsdk::eNeighborhood2dType inOptNeighborhood2d,
const ipsdk::image::ImagePtr pOutLabelImg 
)

wrapper function for Connected component image 2d labeling algorithm

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure