Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
DentalPanoramicExtractor Class Reference

ImageViz Class extracting a dental panoramic volume. More...

#include <ImageViz/Workflows/DentalPanoramicExtractor.h>

Public Member Functions

 DentalPanoramicExtractor (SoImageDataAdapter *inImage)
 Constructor.
 
 ~DentalPanoramicExtractor ()
 Destructor.
 
SoImageDataAdaptergetInputVolume () const
 Get the input 3D CBCT image of the head (LP orientation).
 
void setInputVolume (SoImageDataAdapter *inImage)
 Set the input 3D CBCT image of the head (LP orientation).
 
uint32_t getSubsamplingFactor () const
 Get the down sampling factor to compute the segmentation volume used for fitting the arch mesh.
 
void setSubsamplingFactor (uint32_t)
 Set the down sampling factor to compute the segmentation volume used for fitting the arch mesh.
 
bool getAutoThreshold () const
 Returns True if the segmentation of the teeth is automatic.
 
void setAutoThreshold (bool)
 Set True to perform an automatic segmentation of the teeth.
 
double getThreshold () const
 Get the threshold value used when the automatic threshold is disabled.
 
void setThreshold (double)
 Set the threshold value used when the automatic threshold is disabled.
 
double getExtrusionUp () const
 Get the extrusion length of dental arch curve in the direction of feet towards head.
 
void setExtrusionUp (double)
 Set the extrusion length of dental arch curve in the direction of feet towards head.
 
double getExtrusionDown () const
 Get the extrusion length of dental arch curve in the direction of head towards feet.
 
void setExtrusionDown (double)
 Set the extrusion length of dental arch curve in the direction of head towards feet.
 
double getSearchLength () const
 Get the search distance where the initial mesh is fitted to the arch curve.
 
void setSearchLength (double)
 Set the search distance where the initial mesh is fitted to the arch curve.
 
double getVolumeThickness () const
 Get the thickness of the output panoramic volume.
 
void setVolumeThickness (double)
 Set the thickness of the output panoramic volume.
 
uint32_t getSlabThickness () const
 Get the number of slices of the panoramic volume used to build the output panoramic image.
 
void setSlabThickness (uint32_t)
 Set the number of slices of the panoramic volume used to build the output panoramic image.
 
double getSharpeningFactor () const
 Get the sharpening factor applied on the panoramic image.
 
void setSharpeningFactor (double)
 Set the sharpening factor applied on the panoramic image.
 
void setArchCurve (const std::vector< SbVec3f > &)
 Set the list of vertices forming the dental arch which is used to compute the arch mesh.
 
void setArchMesh (SbStructuredQuadrilateralMesh *)
 Set the mesh forming the surface to unfold in the output volume.
 
std::vector< SbVec3fgetArchCurve ()
 Get the list of vertices forming the dental arch which is used to compute the arch mesh.
 
std::vector< SbVec3fgetInsideArchCurve ()
 Get the list of vertices forming the inside border of the search area for fitting the arch mesh.
 
std::vector< SbVec3fgetOutsideArchCurve ()
 Get the list of vertices forming the outside border of the search area for fitting the arch mesh.
 
SbStructuredQuadrilateralMeshgetArchMesh ()
 Get the mesh forming the surface to unfold in the output volume.
 
SoImageDataAdaptergetPanoramicVolume ()
 Get the output panoramic volume given by unfolding the surface defined by the arch mesh.
 
SoImageDataAdaptergetPanoramicImage ()
 Get the output panoramic image representing unfolded jaws.
 

Detailed Description

ImageViz Class extracting a dental panoramic volume.

This class provides a set of functions for extracting a dental panoramic from a CBCT volume. The full workflow for extracting a panoramic is :

  • 1. Segmentation of the teeth in order to get the weight volume used at the fitting step. This segmentation can be done either automatically or using a predefined threshold.
  • 2. Extraction of an arch curve which is a list of vertices modeling the dental arch in a 2D plane. This step is applied by the getArchCurve function.
  • 3. Extrusion of this curve to build an initial mesh. This step is applied by the getArchMesh function.
  • 4. Fitting of this mesh on a weight volume representing the center of the teeth for building an arch mesh. This step is applied by the getArchMesh function.
  • 5. Extraction of a panoramic volume which is an unfolded volume resampling the input volume. This step is applied by the getPanoramicVolume function.
  • 6. Extraction of a panoramic image which is a projection of the panoramic volume. This step is applied by the getPanoramicImage function.

Each step can be computed by calling the corresponding function. When one of these functions is called, the previous steps are automatically applied if:

  • They have not been yet computed.
  • At least one of their parameters has been modified. Consequently, after having set an input volume the getPanoramicImage function can be directly called to generate a 2D panoramic. Then all steps are automatically performed. For example, if the same function is called again after having changed the search length, only steps 4 to 6 are performed again.

By default the arch curve and arch volume are automatically computed.The arch curve can be user defined by using the setArchCurve function. In this case the arch mesh will be computed by extruding and fitting this user curve.

The arch mesh can be also user defined by using the setArchMesh function. In this case the arch mesh will not be computed from the arch curve.

Important notices

  • This class is dedicated to be used on CBCT data whose voxel size are expressed in millimeters.
  • Default segmentation parameters are preset to work with voxel intensities in Hounsfield Unit but can be adapted to different calibration thanks to the threshold parameters.

Definition at line 67 of file DentalPanoramicExtractor.h.

Constructor & Destructor Documentation

◆ DentalPanoramicExtractor()

DentalPanoramicExtractor::DentalPanoramicExtractor ( SoImageDataAdapter inImage)

Constructor.

inImage: The input 3D CBCT image of the head (LP orientation).

◆ ~DentalPanoramicExtractor()

DentalPanoramicExtractor::~DentalPanoramicExtractor ( )

Destructor.

Member Function Documentation

◆ getArchCurve()

std::vector< SbVec3f > DentalPanoramicExtractor::getArchCurve ( )

Get the list of vertices forming the dental arch which is used to compute the arch mesh.

Curve vertices are expressed in mm. Default value is an empty vector which means that the curve is automatically computed.

◆ getArchMesh()

SbStructuredQuadrilateralMesh * DentalPanoramicExtractor::getArchMesh ( )

Get the mesh forming the surface to unfold in the output volume.

Mesh vertices are expressed in mm. Default value is NULL which means that the mesh is automatically computed.

◆ getAutoThreshold()

bool DentalPanoramicExtractor::getAutoThreshold ( ) const

Returns True if the segmentation of the teeth is automatic.

Returns False if it applies the threshold given by the getThreshold function. Default value is True.

◆ getExtrusionDown()

double DentalPanoramicExtractor::getExtrusionDown ( ) const

Get the extrusion length of dental arch curve in the direction of head towards feet.

This length is expressed in mm. Default value is 30.

◆ getExtrusionUp()

double DentalPanoramicExtractor::getExtrusionUp ( ) const

Get the extrusion length of dental arch curve in the direction of feet towards head.

This length is expressed in mm. Default value is 30.

◆ getInputVolume()

SoImageDataAdapter * DentalPanoramicExtractor::getInputVolume ( ) const

Get the input 3D CBCT image of the head (LP orientation).

◆ getInsideArchCurve()

std::vector< SbVec3f > DentalPanoramicExtractor::getInsideArchCurve ( )

Get the list of vertices forming the inside border of the search area for fitting the arch mesh.

This curve is computed by shifting the arch curve inside the jaws to the search distance. Curve vertices are expressed in mm. If the arch curve is not up to date, it is automatically computed first.

◆ getOutsideArchCurve()

std::vector< SbVec3f > DentalPanoramicExtractor::getOutsideArchCurve ( )

Get the list of vertices forming the outside border of the search area for fitting the arch mesh.

This curve is computed by shifting the arch curve outside the jaws to the search distance. Curve vertices are expressed in mm. If the arch curve is not up to date, it is automatically computed first.

◆ getPanoramicImage()

SoImageDataAdapter * DentalPanoramicExtractor::getPanoramicImage ( )

Get the output panoramic image representing unfolded jaws.

The width of this volume is defined by arch curve length. Its height is defined by the sum of the lower and upper extrusion lengths.

◆ getPanoramicVolume()

SoImageDataAdapter * DentalPanoramicExtractor::getPanoramicVolume ( )

Get the output panoramic volume given by unfolding the surface defined by the arch mesh.

The width of this volume is defined by arch curve length. Its height is defined by the sum of the lower and upper extrusion lengths. Its thickness is defined by the volume thickness.

◆ getSearchLength()

double DentalPanoramicExtractor::getSearchLength ( ) const

Get the search distance where the initial mesh is fitted to the arch curve.

This distance is expressed in mm. Default value is 15.

◆ getSharpeningFactor()

double DentalPanoramicExtractor::getSharpeningFactor ( ) const

Get the sharpening factor applied on the panoramic image.

The higher this factor is, the sharper the output image is. If it is equal to 0, no sharpening is applied. Default value is 4.

◆ getSlabThickness()

uint32_t DentalPanoramicExtractor::getSlabThickness ( ) const

Get the number of slices of the panoramic volume used to build the output panoramic image.

Default value is 3.

◆ getSubsamplingFactor()

uint32_t DentalPanoramicExtractor::getSubsamplingFactor ( ) const

Get the down sampling factor to compute the segmentation volume used for fitting the arch mesh.

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. Default value is 4.

◆ getThreshold()

double DentalPanoramicExtractor::getThreshold ( ) const

Get the threshold value used when the automatic threshold is disabled.

Default value is 1000.

◆ getVolumeThickness()

double DentalPanoramicExtractor::getVolumeThickness ( ) const

Get the thickness of the output panoramic volume.

This thickness is expressed in mm. Default value is 15.

◆ setArchCurve()

void DentalPanoramicExtractor::setArchCurve ( const std::vector< SbVec3f > &  )

Set the list of vertices forming the dental arch which is used to compute the arch mesh.

Curve vertices are expressed in mm. Default value is an empty vector which means that the curve is automatically computed.

◆ setArchMesh()

void DentalPanoramicExtractor::setArchMesh ( SbStructuredQuadrilateralMesh )

Set the mesh forming the surface to unfold in the output volume.

Mesh vertices are expressed in mm. Default value is NULL which means that the mesh is automatically computed.

◆ setAutoThreshold()

void DentalPanoramicExtractor::setAutoThreshold ( bool  )

Set True to perform an automatic segmentation of the teeth.

Set False to apply the threshold defined by the setThreshold function. Default value is True.

◆ setExtrusionDown()

void DentalPanoramicExtractor::setExtrusionDown ( double  )

Set the extrusion length of dental arch curve in the direction of head towards feet.

This length is expressed in mm. Default value is 30.

◆ setExtrusionUp()

void DentalPanoramicExtractor::setExtrusionUp ( double  )

Set the extrusion length of dental arch curve in the direction of feet towards head.

This length is expressed in mm. Default value is 30.

◆ setInputVolume()

void DentalPanoramicExtractor::setInputVolume ( SoImageDataAdapter inImage)

Set the input 3D CBCT image of the head (LP orientation).

If the input volume is set to null, the whole cache data is cleared.

◆ setSearchLength()

void DentalPanoramicExtractor::setSearchLength ( double  )

Set the search distance where the initial mesh is fitted to the arch curve.

This distance is expressed in mm. Default value is 15.

◆ setSharpeningFactor()

void DentalPanoramicExtractor::setSharpeningFactor ( double  )

Set the sharpening factor applied on the panoramic image.

The higher this factor is, the sharper the output image is. If it is equal to 0, no sharpening is applied. Default value is 4.

◆ setSlabThickness()

void DentalPanoramicExtractor::setSlabThickness ( uint32_t  )

Set the number of slices of the panoramic volume used to build the output panoramic image.

Default value is 3.

◆ setSubsamplingFactor()

void DentalPanoramicExtractor::setSubsamplingFactor ( uint32_t  )

Set the down sampling factor to compute the segmentation volume used for fitting the arch mesh.

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. Default value is 4.

◆ setThreshold()

void DentalPanoramicExtractor::setThreshold ( double  )

Set the threshold value used when the automatic threshold is disabled.

Default value is 1000.

◆ setVolumeThickness()

void DentalPanoramicExtractor::setVolumeThickness ( double  )

Set the thickness of the output panoramic volume.

This thickness is expressed in mm. Default value is 15.


The documentation for this class was generated from the following file: