ImageDev

AverageSpaceThickness3d

Measures the separation thickness between structures inside the volume of interest of a three-dimensional binary image.

Access to parameter description

For an introduction: This algorithm estimates the thickness of the spaces contained in the binary input image.
Like the AverageObjectThickness3d algorithm, the structure separation thickness $Sp$ can be calculated with different models as follows: $$ Sp = Th\left(\frac{TV}{V}-1\right) $$ where Note: This module estimates the average thickness of spaces within bone morphology under the specific assumption of structure models. Different measurements of thickness exists, and a more direct approach is accessible with the LocalThicknessMap3d algorithm.

See also

Function Syntax

This function returns outputMeasurement.
// Function prototype
AverageSpaceThicknessMsr::Ptr averageSpaceThickness3d( std::shared_ptr< iolink::ImageView > inputObjectImage, std::shared_ptr< iolink::ImageView > inputMaskImage, AverageSpaceThickness3d::Model model, AverageSpaceThicknessMsr::Ptr outputMeasurement = nullptr );
This function returns outputMeasurement.
// Function prototype.
average_space_thickness_3d(input_object_image: idt.ImageType,
                           input_mask_image: idt.ImageType,
                           model: AverageSpaceThickness3d.Model = AverageSpaceThickness3d.Model.PARALLEL_PLATE_MODEL,
                           output_measurement: Union[Any, None] = None) -> AverageSpaceThicknessMsr
This function returns outputMeasurement.
// Function prototype.
public static AverageSpaceThicknessMsr
AverageSpaceThickness3d( IOLink.ImageView inputObjectImage,
                         IOLink.ImageView inputMaskImage,
                         AverageSpaceThickness3d.Model model = ImageDev.AverageSpaceThickness3d.Model.PARALLEL_PLATE_MODEL,
                         AverageSpaceThicknessMsr outputMeasurement = null );

Class Syntax

Parameters

Parameter Name Description Type Supported Values Default Value
input
inputObjectImage
The input 3D binary image. Image Binary nullptr
input
inputMaskImage
The binary image defining the volume of interest. The measurement is computed from voxels having a value of 1 in this image. If it equals null, the computation is performed from all voxels of the input image. It must have same dimensions as the input image. Image Binary nullptr
input
model
The structure model used to compute the thickness.
PARALLEL_PLATE_MODEL The computation uses a parallel plate model.
CYLINDER_ROD_MODEL The computation uses a cylinder rod model.
SPHERE_MODEL The computation uses a sphere model.
Enumeration PARALLEL_PLATE_MODEL
output
outputMeasurement
The output measurement result. AverageSpaceThicknessMsr nullptr
Parameter Name Description Type Supported Values Default Value
input
input_object_image
The input 3D binary image. image Binary None
input
input_mask_image
The binary image defining the volume of interest. The measurement is computed from voxels having a value of 1 in this image. If it equals null, the computation is performed from all voxels of the input image. It must have same dimensions as the input image. image Binary None
input
model
The structure model used to compute the thickness.
PARALLEL_PLATE_MODEL The computation uses a parallel plate model.
CYLINDER_ROD_MODEL The computation uses a cylinder rod model.
SPHERE_MODEL The computation uses a sphere model.
enumeration PARALLEL_PLATE_MODEL
output
output_measurement
The output measurement result. AverageSpaceThicknessMsr None
Parameter Name Description Type Supported Values Default Value
input
inputObjectImage
The input 3D binary image. Image Binary null
input
inputMaskImage
The binary image defining the volume of interest. The measurement is computed from voxels having a value of 1 in this image. If it equals null, the computation is performed from all voxels of the input image. It must have same dimensions as the input image. Image Binary null
input
model
The structure model used to compute the thickness.
PARALLEL_PLATE_MODEL The computation uses a parallel plate model.
CYLINDER_ROD_MODEL The computation uses a cylinder rod model.
SPHERE_MODEL The computation uses a sphere model.
Enumeration PARALLEL_PLATE_MODEL
output
outputMeasurement
The output measurement result. AverageSpaceThicknessMsr null

Object Examples

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

AverageSpaceThickness3d averageSpaceThickness3dAlgo;
averageSpaceThickness3dAlgo.setInputObjectImage( foam_sep );
averageSpaceThickness3dAlgo.setInputMaskImage( foam_sep );
averageSpaceThickness3dAlgo.setModel( AverageSpaceThickness3d::Model::PARALLEL_PLATE_MODEL );
averageSpaceThickness3dAlgo.execute();

std::cout << "thickness: " << averageSpaceThickness3dAlgo.outputMeasurement()->thickness( ) ;
foam_sep = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep.vip"))

average_space_thickness_3d_algo = imagedev.AverageSpaceThickness3d()
average_space_thickness_3d_algo.input_object_image = foam_sep
average_space_thickness_3d_algo.input_mask_image = foam_sep
average_space_thickness_3d_algo.model = imagedev.AverageSpaceThickness3d.PARALLEL_PLATE_MODEL
average_space_thickness_3d_algo.execute()

print("thickness: ", str(average_space_thickness_3d_algo.output_measurement.thickness()))
ImageView foam_sep = Data.ReadVipImage( @"Data/images/foam_sep.vip" );

AverageSpaceThickness3d averageSpaceThickness3dAlgo = new AverageSpaceThickness3d
{
    inputObjectImage = foam_sep,
    inputMaskImage = foam_sep,
    model = AverageSpaceThickness3d.Model.PARALLEL_PLATE_MODEL
};
averageSpaceThickness3dAlgo.Execute();

Console.WriteLine( "thickness: " + averageSpaceThickness3dAlgo.outputMeasurement.thickness( ) );

Function Examples

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

auto result = averageSpaceThickness3d( foam_sep, foam_sep, AverageSpaceThickness3d::Model::PARALLEL_PLATE_MODEL );

std::cout << "thickness: " << result->thickness( ) ;
foam_sep = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep.vip"))

result = imagedev.average_space_thickness_3d(foam_sep, foam_sep, imagedev.AverageSpaceThickness3d.PARALLEL_PLATE_MODEL)

print("thickness: ", str(result.thickness()))
ImageView foam_sep = Data.ReadVipImage( @"Data/images/foam_sep.vip" );

AverageSpaceThicknessMsr result = Processing.AverageSpaceThickness3d( foam_sep, foam_sep, AverageSpaceThickness3d.Model.PARALLEL_PLATE_MODEL );

Console.WriteLine(  "thickness: " + result.thickness( )  );