Processing math: 100%
ImageDev

LocalThicknessMap3d

Computes a voxel-wise thickness of three-dimensional objects.

Access to parameter description

This algorithm assignes to each voxel a value representing the diameter of the largest ball containing the voxel and entirely inscribed in the object.

It starts by computing a Euclidean distance map inside the image objects. In a second step, the thickness map T is initialized with the values of the distance map. For each voxel v, with distance map value d(v), the ball B centered on v and with radius R=d(v) is browsed. The thickness T of these neighboring voxels w is set to max(T(w),R).
Finally, the thickness map is multiplied by 2 to obtain the largest ball diameter.

Note:
Reference:
T.Hildebrand, P.R egsegger. "A New Method for the Model-Independent Assessment of Thickness in Three-Dimensional Images". Journal of Microscopy, vol. 187, pp 67-75, Jan 1997.

See also

Function Syntax

This function returns outputMapImage.
// Function prototype
std::shared_ptr< iolink::ImageView > localThicknessMap3d( std::shared_ptr< iolink::ImageView > inputBinaryImage, LocalThicknessMap3d::Precision precision, std::shared_ptr< iolink::ImageView > outputMapImage = NULL );

Class Syntax

Parameters

Parameter Name Description Type Supported Values Default Value
input
inputBinaryImage
The binary input image. Image Binary nullptr
input
precision
The precision of the thickness computation.
FASTER The operation is computed with the precise mode.
PRECISE The operation is computed with the fast mode.
Enumeration FASTER
output
outputMapImage
The thickness map output image. Its dimensions are forced to the same values as the input. Its data type is 32-bit floating point. Image nullptr

Object Examples

auto foam_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep.vip" );

LocalThicknessMap3d localThicknessMap3dAlgo;
localThicknessMap3dAlgo.setInputBinaryImage( foam_sep );
localThicknessMap3dAlgo.setPrecision( LocalThicknessMap3d::Precision::FASTER );
localThicknessMap3dAlgo.execute();

std::cout << "outputMapImage:" << localThicknessMap3dAlgo.outputMapImage()->toString();

Function Examples

auto foam_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep.vip" );

auto result = localThicknessMap3d( foam_sep, LocalThicknessMap3d::Precision::FASTER );

std::cout << "outputMapImage:" << result->toString();