[Workflows]

Class extracting a dental panoramic volume. More...

`#include <ImageViz/Workflows/DentalPanoramicExtractor.h>`

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.

**See related examples:**

DentalPanoramicExtractor::DentalPanoramicExtractor | ( | SoImageDataAdapter * | inImage |
) |

Constructor.

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

DentalPanoramicExtractor::~DentalPanoramicExtractor | ( | ) |

Destructor.

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.

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.

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.

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.

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.

SoImageDataAdapter* DentalPanoramicExtractor::getInputVolume | ( | ) | const |

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

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.

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.

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.

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.

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.

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.

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.

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.

double DentalPanoramicExtractor::getThreshold | ( | ) | const |

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

Default value is 1000.

double DentalPanoramicExtractor::getVolumeThickness | ( | ) | const |

Get the thickness of the output panoramic volume.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

void DentalPanoramicExtractor::setThreshold | ( | double | ) |

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

Default value is 1000.

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:

- ImageViz/Workflows/DentalPanoramicExtractor.h

Copyright © FEI S.A.S. All rights reserved.