image = | binaryReconstruction2dImg (inBinImg,inBinMarkImg) |
Binary reconstruction of an image 2d.
This algorithm allows to reconstruct an input binary image InBinImg using a marker input image InBinMarkImg with respect to a given neighborhood 2d policy (see 2d neighborhood models).
The reconstruction of InBinImg from InBinMarkImg is the union of connected components of InBinImg which contain at least a pixel of InBinMarkImg.
It can also be seen as the dilation of InBinMarkImg into InBinImg until convergence.
Two versions of this algorithm are implemented which can be selected using attribute InOptOptimizationPolicy which associated to enumerate ipsdk::imaproc::attr::eProcessingOptimizationPolicy :
- a 'fast' version using a binary and a label intermediate image (which can optionally be provided via OutOptWk1BinImg and OutOptWk1LabelImg attributes)
- a low memory consumption iterative algorithm which propagate reconstructed elements until convergence.
Here is an example of binary reconstruction of an image 2d :
In this example input binary image data are represented in white while input binary marker image data are represented in red.
- Note
- See "Morphological Grayscale Reconstruction in Image Analysis: Applications and Efficient Algorithms, Luc Vicent, IEEE Transactions on Image Processing, 1993, Volume 2, 176-201" for more informations on this algorithm.
Example of Python code :
Example imports
import PyIPSDK
import PyIPSDK.IPSDKIPLAdvancedMorphology as advmorpho
Code Example
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
inMarkImg = PyIPSDK.loadTiffImageFile(inputMarkImgPath)
outImg = advmorpho.binaryReconstruction2dImg(inImg, inMarkImg)
Example of C++ code :
Example informations
Header file
#include <IPSDKIPL/IPSDKIPLAdvancedMorphology/Processor/BinaryReconstruction2dImg/BinaryReconstruction2dImg.h>
Code Example
ImagePtr pOutImg = binaryReconstruction2dImg(pInBinImg, pInBinMarkImg);