ImageDev

DentalWallSegmentation3d

Transforms a grayscale CBCT image into a binary image where all pixels identified as belonging to the dental wall are set to 1 and all others are set to 0.

Access to parameter description

This algorithm performs a rough segmentation of teeth and jaws contained in a cone-beam computerized tomography (CBCT) image.
The binarization step can be either automatically performed, or by using a user-defined threshold value.
A sub sampling factor can be applied to reduce the computation time.

Important notices:

Function Syntax

This function returns the outputBinaryImage output parameter.
// Function prototype.
std::shared_ptr< iolink::ImageView >
dentalWallSegmentation3d( std::shared_ptr< iolink::ImageView > inputImage,
                          bool autoThresholdMode,
                          uint32_t samplingFactor,
                          double threshold,
                          std::shared_ptr< iolink::ImageView > outputBinaryImage = NULL );
This function returns the outputBinaryImage output parameter.
// Function prototype.
dental_wall_segmentation_3d( input_image,
                             auto_threshold_mode = True,
                             sampling_factor = 4,
                             threshold = 1000,
                             output_binary_image = None )
This function returns the outputBinaryImage output parameter.
// Function prototype.
public static IOLink.ImageView
DentalWallSegmentation3d( IOLink.ImageView inputImage,
                          bool autoThresholdMode = true,
                          UInt32 samplingFactor = 4,
                          double threshold = 1000,
                          IOLink.ImageView outputBinaryImage = null );

Class Syntax

Parameters

Class Name DentalWallSegmentation3d

Parameter Name Description Type Supported Values Default Value
input
inputImage
The input 3D CBCT image of the head (LP orientation). Image Grayscale nullptr
input
autoThresholdMode
The way to binarize the data. Performs an automatic segmentation of the teeth is equals true, applies the threshold defined by the thresholdRange parameter otherwise. Bool true
input
threshold
The low and high threshold levels. This parameter is ignored when the automatic threshold mode is enabled. Float64 Any value 1000
input
samplingFactor
The down sampling factor to compute the segmentation volume used for extracting the dental wall.
The higher this factor is, the less precise the fitted mesh is and the faster the computation is. If it is equal to 1, no down sampling is applied.
UInt32 Any value 4
output
outputBinaryImage
The output binary image representing the extracted dental wall. Its dimensions are equal to the input image dimensions divided by the sampling factor. Image nullptr

Object Examples

std::shared_ptr< iolink::ImageView > dental_cbct = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "dental_cbct.am" );

DentalWallSegmentation3d dentalWallSegmentation3dAlgo;
dentalWallSegmentation3dAlgo.setInputImage( dental_cbct );
dentalWallSegmentation3dAlgo.setAutoThresholdMode( true );
dentalWallSegmentation3dAlgo.setSamplingFactor( 4 );
dentalWallSegmentation3dAlgo.setThreshold( 580 );
dentalWallSegmentation3dAlgo.execute();

std::cout << "outputBinaryImage:" << dentalWallSegmentation3dAlgo.outputBinaryImage()->toString();
dental_cbct = ioformat.read_image(imagedev_data.get_image_path("dental_cbct.am"))

dental_wall_segmentation_3d_algo = imagedev.DentalWallSegmentation3d()
dental_wall_segmentation_3d_algo.input_image = dental_cbct
dental_wall_segmentation_3d_algo.auto_threshold_mode = True
dental_wall_segmentation_3d_algo.sampling_factor = 4
dental_wall_segmentation_3d_algo.threshold = 580
dental_wall_segmentation_3d_algo.execute()

print( "output_binary_image:", str( dental_wall_segmentation_3d_algo.output_binary_image ) )
ImageView dental_cbct = ViewIO.ReadImage( @"Data/images/dental_cbct.am" );

DentalWallSegmentation3d dentalWallSegmentation3dAlgo = new DentalWallSegmentation3d
{
    inputImage = dental_cbct,
    autoThresholdMode = true,
    samplingFactor = 4,
    threshold = 580
};
dentalWallSegmentation3dAlgo.Execute();

Console.WriteLine( "outputBinaryImage:" + dentalWallSegmentation3dAlgo.outputBinaryImage.ToString() );

Function Examples

std::shared_ptr< iolink::ImageView > dental_cbct = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "dental_cbct.am" );

auto result = dentalWallSegmentation3d( dental_cbct, true, 4, 580 );

std::cout << "outputBinaryImage:" << result->toString();
dental_cbct = ioformat.read_image(imagedev_data.get_image_path("dental_cbct.am"))

result = imagedev.dental_wall_segmentation_3d( dental_cbct, True, 4, 580 )

print( "output_binary_image:", str( result ) )
ImageView dental_cbct = ViewIO.ReadImage( @"Data/images/dental_cbct.am" );

IOLink.ImageView result = Processing.DentalWallSegmentation3d( dental_cbct, true, 4, 580 );

Console.WriteLine( "outputBinaryImage:" + result.ToString() );