IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit

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

IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 
IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius, const ipsdk::ipUInt32 nbAngles)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 
IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius, const attr::eBorderExtensionPolicy &inOptBorderExtensionPolicy)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 
IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius, const ipsdk::ipUInt32 nbAngles, const attr::eBorderExtensionPolicy &inOptBorderExtensionPolicy)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 
IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius, const image::ImagePtr &pOutImg)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 
IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius, const ipsdk::ipUInt32 nbAngles, const image::ImagePtr &pOutImg)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 
IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius, const attr::eBorderExtensionPolicy &inOptBorderExtensionPolicy, const image::ImagePtr &pOutImg)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 
IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg (const image::ImageConstPtr &pInImg, const ipsdk::ipReal64 radius, const ipsdk::ipUInt32 nbAngles, const attr::eBorderExtensionPolicy &inOptBorderExtensionPolicy, const image::ImagePtr &pOutImg)
 wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images More...
 

Detailed Description

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

The 3d union linear opening algorithm computes openings 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 light holes inside dark objects while preserving thin light structures.

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

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

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

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InImg3d [Input] 3d image for operation X
ipsdk::imaproc::attr::InRadius [Input] Radius X
ipsdk::imaproc::attr::InOptNbAngles3d [Input Optional] Number of angles for directional smoothing X
ipsdk::imaproc::attr::InOptBorderExtensionPolicy [Input Optional] flag indicating border extension policy for processing X
ipsdk::imaproc::attr::OutOptWk1Img [Output Optional] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutOptWk2Img [Output Optional] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutWk1Img [Output] Temporary working image for algorithm customOutput (_pOutWk1Img, outputUnionLinear3d(_pInImg3d,_pInOptBorderExtensionPolicy,_pInRadius))
ipsdk::imaproc::attr::OutWk2Img [Output] Temporary working image for algorithm customOutput (_pOutWk2Img, outputUnionLinear3d(_pInImg3d,_pInOptBorderExtensionPolicy,_pInRadius))
ipsdk::imaproc::attr::OutImg [Output] image for processing operation ipsdk::imaproc::duplicateInOut (_pOutImg, _pInImg3d)

Global Rule description

Global rule description for algorithm :
(ipsdk::imaproc::matchSizeAndType (_pInImg3d,_pOutImg)) && 
(ipsdk::imaproc::customImageProperty (_pOutWk1Img,
  matchBorderExtension1 (_pInImg3d,_pInRadius,eSEXYZSubType::eSEXYZ_Linear,_pInOptBorderExtensionPolicy))) && 
(ipsdk::imaproc::customImageProperty (_pOutWk2Img,
  matchBorderExtension1 (_pInImg3d,_pInRadius,eSEXYZSubType::eSEXYZ_Linear,_pInOptBorderExtensionPolicy))) && 
(ipsdk::processor::ifIsSet (_pOutOptWk1Img,
  ipsdk::imaproc::customImageProperty (_pOutOptWk1Img,
   matchBorderExtension1 (_pInImg3d,_pInRadius,eSEXYZSubType::eSEXYZ_Linear,_pInOptBorderExtensionPolicy)))) && 
(ipsdk::processor::ifIsSet (_pOutOptWk2Img,
  ipsdk::imaproc::customImageProperty (_pOutOptWk2Img,
   matchBorderExtension1 (_pInImg3d,_pInRadius,eSEXYZSubType::eSEXYZ_Linear,_pInOptBorderExtensionPolicy))))

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLBasicMorphology as morpho

Code Example

# Structuring element radius
radius = 4
# Number of angles
nbAngles = 6
# opening 3d image computation
outImg = morpho.unionLinearOpening3dImg(inImg, radius, nbAngles)

Example of C++ code :

Example informations

Associated library

IPSDKIPLBasicMorphology

Header file

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 = unionLinearOpening3dImg(pInImg, radius, nbAngles);
See also
UnionLinearOpening3dImgLvl1

Function Documentation

◆ unionLinearOpening3dImg() [1/8]

IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ unionLinearOpening3dImg() [2/8]

IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius,
const ipsdk::ipUInt32  nbAngles 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ unionLinearOpening3dImg() [3/8]

IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius,
const attr::eBorderExtensionPolicy inOptBorderExtensionPolicy 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ unionLinearOpening3dImg() [4/8]

IPSDKIPLBASICMORPHOLOGY_API image::ImagePtr ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius,
const ipsdk::ipUInt32  nbAngles,
const attr::eBorderExtensionPolicy inOptBorderExtensionPolicy 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ unionLinearOpening3dImg() [5/8]

IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius,
const image::ImagePtr pOutImg 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ unionLinearOpening3dImg() [6/8]

IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius,
const ipsdk::ipUInt32  nbAngles,
const image::ImagePtr pOutImg 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ unionLinearOpening3dImg() [7/8]

IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius,
const attr::eBorderExtensionPolicy inOptBorderExtensionPolicy,
const image::ImagePtr pOutImg 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ unionLinearOpening3dImg() [8/8]

IPSDKIPLBASICMORPHOLOGY_API void ipsdk::imaproc::morpho::unionLinearOpening3dImg ( const image::ImageConstPtr pInImg,
const ipsdk::ipReal64  radius,
const ipsdk::ipUInt32  nbAngles,
const attr::eBorderExtensionPolicy inOptBorderExtensionPolicy,
const image::ImagePtr pOutImg 
)

wrapper function for Union of openings calculated for several linear structuring element orientations on 3d images

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure