Class DentalPanoramicExtractor
- java.lang.Object
-
- com.openinventor.inventor.Inventor
-
- com.openinventor.imageviz.workflows.DentalPanoramicExtractor
-
public class DentalPanoramicExtractor extends Inventor
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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Constructor Summary
Constructors Constructor Description DentalPanoramicExtractor(SoImageDataAdapter inImage)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.ArrayList<SbVec3f>
getArchCurve()
Get the list of vertices forming the dental arch which is used to compute the arch mesh.SbStructuredQuadrilateralMesh
getArchMesh()
Get the mesh forming the surface to unfold in the output volume.boolean
getAutoThreshold()
Returns True if the segmentation of the teeth is automatic.double
getExtrusionDown()
Get the extrusion length of dental arch curve in the direction of head towards feet.double
getExtrusionUp()
Get the extrusion length of dental arch curve in the direction of feet towards head.SoImageDataAdapter
getInputVolume()
Get the input 3D CBCT image of the head (LP orientation).java.util.ArrayList<SbVec3f>
getInsideArchCurve()
Get the list of vertices forming the inside border of the search area for fitting the arch mesh.java.util.ArrayList<SbVec3f>
getOutsideArchCurve()
Get the list of vertices forming the outside border of the search area for fitting the arch mesh.SoImageDataAdapter
getPanoramicImage()
Get the output panoramic image representing unfolded jaws.SoImageDataAdapter
getPanoramicVolume()
Get the output panoramic volume given by unfolding the surface defined by the arch mesh.double
getSearchLength()
Get the search distance where the initial mesh is fitted to the arch curve.double
getSharpeningFactor()
Get the sharpening factor applied on the panoramic image.int
getSlabThickness()
Get the number of slices of the panoramic volume used to build the output panoramic image.int
getSubsamplingFactor()
Get the down sampling factor to compute the segmentation volume used for fitting the arch mesh.double
getThreshold()
Get the threshold value used when the automatic threshold is disabled.double
getVolumeThickness()
Get the thickness of the output panoramic volume.void
setArchCurve(java.util.Collection<SbVec3f> name_11)
Set the list of vertices forming the dental arch which is used to compute the arch mesh.void
setArchMesh(SbStructuredQuadrilateralMesh name_12)
Set the mesh forming the surface to unfold in the output volume.void
setAutoThreshold(boolean name_3)
Set True to perform an automatic segmentation of the teeth.void
setExtrusionDown(double name_6)
Set the extrusion length of dental arch curve in the direction of head towards feet.void
setExtrusionUp(double name_5)
Set the extrusion length of dental arch curve in the direction of feet towards head.void
setInputVolume(SoImageDataAdapter inImage)
Set the input 3D CBCT image of the head (LP orientation).void
setSearchLength(double name_7)
Set the search distance where the initial mesh is fitted to the arch curve.void
setSharpeningFactor(double name_10)
Set the sharpening factor applied on the panoramic image.void
setSlabThickness(int name_9)
Set the number of slices of the panoramic volume used to build the output panoramic image.void
setSubsamplingFactor(int name_2)
Set the down sampling factor to compute the segmentation volume used for fitting the arch mesh.void
setThreshold(double name_4)
Set the threshold value used when the automatic threshold is disabled.void
setValue(DentalPanoramicExtractor copyFrom)
void
setVolumeThickness(double name_8)
Set the thickness of the output panoramic volume.-
Methods inherited from class com.openinventor.inventor.Inventor
dispose, getNativeResourceHandle
-
-
-
-
Constructor Detail
-
DentalPanoramicExtractor
public DentalPanoramicExtractor(SoImageDataAdapter inImage)
Constructor. inImage: The input 3D CBCT image of the head (LP orientation).
-
-
Method Detail
-
setInputVolume
public void 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.
-
getSubsamplingFactor
public int getSubsamplingFactor()
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.
-
getOutsideArchCurve
public java.util.ArrayList<SbVec3f> 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.
-
getArchCurve
public java.util.ArrayList<SbVec3f> 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.
-
getAutoThreshold
public boolean getAutoThreshold()
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.
-
getInsideArchCurve
public java.util.ArrayList<SbVec3f> 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.
-
setSubsamplingFactor
public void setSubsamplingFactor(int name_2)
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.
-
setValue
public void setValue(DentalPanoramicExtractor copyFrom)
-
setSearchLength
public void setSearchLength(double name_7)
Set the search distance where the initial mesh is fitted to the arch curve. This distance is expressed in mm. Default value is 15.
-
getPanoramicImage
public SoImageDataAdapter 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.
-
getArchMesh
public SbStructuredQuadrilateralMesh 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.
-
getInputVolume
public SoImageDataAdapter getInputVolume()
Get the input 3D CBCT image of the head (LP orientation).
-
getPanoramicVolume
public SoImageDataAdapter 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.
-
getSlabThickness
public int getSlabThickness()
Get the number of slices of the panoramic volume used to build the output panoramic image. Default value is 3.
-
getExtrusionDown
public double getExtrusionDown()
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.
-
setSlabThickness
public void setSlabThickness(int name_9)
Set the number of slices of the panoramic volume used to build the output panoramic image. Default value is 3.
-
setExtrusionUp
public void setExtrusionUp(double name_5)
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.
-
getVolumeThickness
public double getVolumeThickness()
Get the thickness of the output panoramic volume. This thickness is expressed in mm. Default value is 15.
-
getSearchLength
public double getSearchLength()
Get the search distance where the initial mesh is fitted to the arch curve. This distance is expressed in mm. Default value is 15.
-
setVolumeThickness
public void setVolumeThickness(double name_8)
Set the thickness of the output panoramic volume. This thickness is expressed in mm. Default value is 15.
-
setExtrusionDown
public void setExtrusionDown(double name_6)
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.
-
setArchCurve
public void setArchCurve(java.util.Collection<SbVec3f> name_11)
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.
-
getThreshold
public double getThreshold()
Get the threshold value used when the automatic threshold is disabled. Default value is 1000.
-
setArchMesh
public void setArchMesh(SbStructuredQuadrilateralMesh name_12)
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
public void setAutoThreshold(boolean name_3)
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.
-
getSharpeningFactor
public double getSharpeningFactor()
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.
-
getExtrusionUp
public double getExtrusionUp()
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.
-
setSharpeningFactor
public void setSharpeningFactor(double name_10)
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.
-
setThreshold
public void setThreshold(double name_4)
Set the threshold value used when the automatic threshold is disabled. Default value is 1000.
-
-