IPSDK 4.1.0.2
IPSDK : Image Processing Software Development Kit
Connected Component 3d
imageconnectedComponent3dImg (inBinLabImg3d)
imageconnectedComponent3dImg (inBinLabImg3d,inOptNeighborhood3d)
scalarconnectedComponent3dImg (inBinLabImg3d,inOptNeighborhood3d,outLabelImg3d)

Detailed Description

Connected component image 3d 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 then z to higher).

For more informations on used neighborhood 3d types report to 3d 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 26 connexity neighborhood type) :

connectedComponent3dImg.png

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

Please, see Connected Component 2d for an illustration of relabeling in a 2d case.

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

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 3d computation
outImg = advmorpho.connectedComponent3dImg(inImg)

Example of C++ code :

Example informations

Header file

#include <IPSDKIPL/IPSDKIPLAdvancedMorphology/Processor/ConnectedComponent3dImg/ConnectedComponent3dImg.h>

Code Example

// opening input image
ImagePtr pInBinLabImg3d = loadTiffImageFile(inputImgPath);
// compute connected component label image associated to input image
ImagePtr pOutLabelImg3d = connectedComponent3dImg(pInBinLabImg3d);