IPSDK 0.2
IPSDK : Image Processing Software Development Kit
Union linear closing 3dSee full documentation
imageunionLinearClosing3dImg (inImg,radius)
imageunionLinearClosing3dImg (inImg,radius,nbAngles)
imageunionLinearClosing3dImg (inImg,radius,inOptBorderExtensionPolicy)
imageunionLinearClosing3dImg (inImg,radius,nbAngles,inOptBorderExtensionPolicy)

Detailed Description

Union of closings calculated for several linear structuring element orientations on 3d images.

The 3d union linear closing algorithm computes closings in several directions with linear structuring elements and combines them to keep the maximum pixel intensity. The structuring element orientations vary in order to describe a regular grid on a 3d sphere (see the IPSDKCore documentation, section IPSDK concepts > Notations and conventions). This algorithm is usefull to fill circular dark holes inside light objects while preserving thin dark structures.

Just like Union linear closing 2d, the algorithm can handle holes to avoid contact with the image border. See the Closing 2d description for more details.

By default, the algorithm uses 6 different regularly distributed angles with the math::computeUniformlyDistOrientations3d(nbAngles) function.

See Union linear closing 2d for an illustration of the union linear closing in two dimensions.

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLBasicMorphology as morpho

Code Example

# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# Structuring element radius
radius = 4
# Number of angles
nbAngles = 6
# opening 3d image computation
outImg = morpho.unionLinearClosing3dImg(inImg, radius, nbAngles)

Example of C++ code :

Example informations

Header file

#include <IPSDKIPL/IPSDKIPLBasicMorphology/Processor/UnionLinearClosing3dImg/UnionLinearClosing3dImg.h>

Code Example

// Input structuring element radius
const ipReal64 radius = 4.;
// Number of angles
const ipUInt32 nbAngles = 6;
// compute union linear opening on the input image
ImagePtr pOutImg = unionLinearClosing3dImg(pInImg, radius, nbAngles);