IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit

algorithm, based on watershed, allowing to separate binary 3d shapes More...

IPSDKIPLADVANCEDMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::advmorpho::watershedBinarySeparation3dImg (const image::ImageConstPtr &pInBinImg3d, const ipReal32 inDilateFactor, const ipsdk::imaproc::attr::eWatershedSeparationMode &inWatershedSeparationMode)
 wrapper function for algorithm, based on watershed, allowing to separate binary 3d shapes More...
 
IPSDKIPLADVANCEDMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::advmorpho::watershedBinarySeparation3dImg (const image::ImageConstPtr &pInBinImg3d, const ipReal32 inDilateFactor, const ipsdk::imaproc::attr::eWatershedSeparationMode &inWatershedSeparationMode, const ipsdk::imaproc::attr::eWatershedProcessingMode &inOptWatershedProcMode)
 wrapper function for algorithm, based on watershed, allowing to separate binary 3d shapes More...
 
IPSDKIPLADVANCEDMORPHOLOGY_API void ipsdk::imaproc::advmorpho::watershedBinarySeparation3dImg (const image::ImageConstPtr &pInBinImg3d, const ipReal32 inDilateFactor, const ipsdk::imaproc::attr::eWatershedSeparationMode &inWatershedSeparationMode, const ipsdk::imaproc::attr::eWatershedProcessingMode &inOptWatershedProcMode, const image::ImagePtr &pOutBinLabImg)
 wrapper function for algorithm, based on watershed, allowing to separate binary 3d shapes More...
 

Detailed Description

algorithm, based on watershed, allowing to separate binary 3d shapes

This algorithm, based on distance map and watershed algorithms, allows to separate shapes of an input binary 3d image.

Given an input binary image InBinImg3d, algorithm process following steps :

Global output of a algorithm can be customized using parameter InWatershedSeparationMode which can take following values :

Futher illustrations for this algorithm can be found looking its 2d version : Watershed Binary Separation 2d.

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InBinImg3d [Input] binary 3d image for processing operation X
ipsdk::imaproc::attr::InDilateFactor [Input] factor used for dilation X
ipsdk::imaproc::attr::InWatershedSeparationMode [Input] parameter allowing to define watershed separation mode X
ipsdk::imaproc::attr::InOptWatershedProcMode [Input Optional] Watershed processing mode X
ipsdk::imaproc::attr::InOptNbMinDataByThread [Input Optional] minimum number of data by thread X
ipsdk::imaproc::attr::OutWk1DistImg [Output] Temporary working image for algorithm ipsdk::imaproc::duplicateInOut (_pOutWk1DistImg, _pInBinImg3d, ipsdk::image::eImageBufferType::eIBT_UInt16)
ipsdk::imaproc::attr::OutWk1Img [Output] Temporary working image for algorithm customOutput (_pOutWk1Img, outputWk1Watershed(_pInBinImg3d,_pInWatershedSeparationMode))
ipsdk::imaproc::attr::OutOptWk1Img [Output Optional] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutOptWk1BinImg [Output Optional] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutBinLabImg [Output] binary or label image for processing operation customOutput (_pOutBinLabImg, outputWatershed(_pInBinImg3d,_pInWatershedSeparationMode))

Global Rule description

Global rule description for algorithm :
(ipsdk::imaproc::matchSize (_pInBinImg3d,_pOutBinLabImg) && 
 ipsdk::imaproc::customImageProperty (_pOutBinLabImg,
  allowedBufferType (_pInWatershedSeparationMode)) && 
 ipsdk::imaproc::matchSize (_pInBinImg3d,_pOutWk1DistImg) && 
 ipsdk::imaproc::matchSize (_pInBinImg3d,_pOutWk1Img) && 
 ipsdk::imaproc::customImageProperty (_pOutWk1Img,
  allowedWk1BufferType (_pInWatershedSeparationMode)) && 
 ipsdk::processor::ifIsSet (_pOutOptWk1Img,
  ipsdk::imaproc::matchSize (_pInBinImg3d,_pOutOptWk1Img)))

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLAdvancedMorphology as advmorpho
import PyIPSDK.IPSDKIPLBinarization as bin

Code Example

# opening of input images
inGreyImg3d = PyIPSDK.loadTiffImageFile(inputGreyImgPath,
PyIPSDK.eTiffDirectoryMode.eTDM_Volume)
# threshold of input image
inBinImg3d = bin.thresholdImg(inGreyImg3d, 75, 255)
# process watershed binary separation (split mode)
outImg = advmorpho.watershedBinarySeparation3dImg(inBinImg3d, 5,
PyIPSDK.eWatershedSeparationMode.eWSM_Split,
PyIPSDK.eWatershedProcessingMode.eWPM_Repeatable)

Example of C++ code :

Example informations

Associated library

IPSDKIPLAdvancedMorphology

Header file

Code Example

// opening of input grey image
ImagePtr pInGreyImg3d = loadTiffImageFile(inputGreyImgPath,
eTiffDirectoryMode::eTDM_Volume);
// threshold of input image
ImagePtr pBinImg3d = thresholdImg(pInGreyImg3d, 75, 255);
// process binary separation (split mode)
See also
WatershedBinarySeparation3dImgLvl1

Function Documentation

◆ watershedBinarySeparation3dImg() [1/3]

IPSDKIPLADVANCEDMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::advmorpho::watershedBinarySeparation3dImg ( const image::ImageConstPtr pInBinImg3d,
const ipReal32  inDilateFactor,
const ipsdk::imaproc::attr::eWatershedSeparationMode inWatershedSeparationMode 
)

wrapper function for algorithm, based on watershed, allowing to separate binary 3d shapes

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ watershedBinarySeparation3dImg() [2/3]

IPSDKIPLADVANCEDMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::advmorpho::watershedBinarySeparation3dImg ( const image::ImageConstPtr pInBinImg3d,
const ipReal32  inDilateFactor,
const ipsdk::imaproc::attr::eWatershedSeparationMode inWatershedSeparationMode,
const ipsdk::imaproc::attr::eWatershedProcessingMode inOptWatershedProcMode 
)

wrapper function for algorithm, based on watershed, allowing to separate binary 3d shapes

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ watershedBinarySeparation3dImg() [3/3]

IPSDKIPLADVANCEDMORPHOLOGY_API void ipsdk::imaproc::advmorpho::watershedBinarySeparation3dImg ( const image::ImageConstPtr pInBinImg3d,
const ipReal32  inDilateFactor,
const ipsdk::imaproc::attr::eWatershedSeparationMode inWatershedSeparationMode,
const ipsdk::imaproc::attr::eWatershedProcessingMode inOptWatershedProcMode,
const image::ImagePtr pOutBinLabImg 
)

wrapper function for algorithm, based on watershed, allowing to separate binary 3d shapes

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure