User Tools

Site Tools


other:dsx:surface3d:tutorials:segment_image_data_and_create_surface_models

Segment Image Data and Create Surface Models

  1. Make sure the CT data for the subject is specified in the Scan Data section of the session, not in the individual object definitions.
  2. Load a subject file and select the session in the **Object Configuration** widget.
  3. Select an object. Surface3D will display a dialog with a list of the Scan Data files specified for the session. Select the appropriate file from the dialog.
  4. Optionally , use the X, Y, and Z keys to rotate the view of the 2D images until they are right-side up. In the 2D windows, you can use HOME to jump to the first slice, END to jump to the last slice, PageUp to move a slice forward, and PageDown to move a slice backward. Use the 3D view to help figure out left from right.
  5. Create a label that will be applied to the voxels of the object you are segmenting. The command is: Segmentation → Add Object Label.
  6. If the **Segmentation** widget is not already open, open it with View → Segmentation.
  7. Select the label, and if you want to change the label's name, double-click on it and type in a new name.
  8. If the **Histogram of Image** widget is not open, open it with View → Histogram of Image.
  9. The min and max thresholds of the segmentation label are shown as green and red lines on the histogram. Click on them and drag them to new locations. For now, make an educated guess as to what their values should be for the object you're segmenting. You can change the values later.
  10. The 'Select Thresholding Seed' option in the Segmentation menu allows the user to set a segmentation seed. In any one of the 2D views, left-click on any voxel that is on the object of interest and which you think is between the thresholds. Surface3D will run a flood-fill algorithm starting at this seed voxel, and find all the voxels connected to the seed that are between the thresholds. They will be labelled with the color of the label in the **Segmentation** widget. If you do not see any colored voxels, change the threshold values until you do. You do not need to change the seed voxel as long as you selected one is on the object you're segmenting.
  11. Adjust the label thresholds until you label as much of the object as possible without capturing too many other voxels. To see the individual voxels better, you can zoom in on the 2D slices with the mouse wheel, and pan the image with the middle mouse button.
  12. Fine tune the segmentation using the commands in the Segmentation menu. Automatic Hole Filling fills all closed 3D holes. Erode Label shrinks the boundaries of the image label by one voxel. Dilate Label grows the boundaries of the image label by one voxel. You can also press and hold the 'p' key to paint the label onto voxels in any 2D view. Press and hold 'e' to erase the label. The radius of the circular brush used to paint and erase is specified by Paintbrush Radius in the Settings dialog. To manually fill 2D holes in the image label, press and hold the 'm' key and left-click on a hole in one of the 2D windows. You can press Ctrl-Z to undo any of these label editing commands (the Undo Limit parameter in the Settings dialog specifies how many of the previous edits are saved in the undo list).
  13. Use the Export Labels command to same an intermediate segmentation to file and use the Load Labels command to load a saved segmentation. Both commands can be found in the File menu.
  14. Once you are done labelling the voxels of the object of interest, mask out all unlabelled voxels by setting them to zero using the Mask Labeled Image Data command and subsequently crop the image data to the minimum bounding box around the label using the Crop Image Data to Labels command. Both command can be found in the Image menu. The resulting image data, whose only non-zero voxels are those representing the object, is suitable for generating DRRs in X4D.
  15. Digitize any landmarks and points of interest that you want to define on the object. The **Landmarks** widget lets you add and remove landmarks, and the **POIs** widget lets you add and remove points of interest. To add a landmark, click on Add Landmark and then click on a voxel in any of the 2D images. To remove a landmark, click on its row in the table and then click on Remove Landmark. The process is the same for adding and removing points of interest.
  16. Create a surface model from the labelled voxels. The command Model → Create Surface Model uses a marching cubes algorithm to find an isosurface from the set of labelled voxels. It then creates a polygonal surface model from the isosurface. For best results, the labelled voxels should not have any holes in the interior.
  17. To fine tune the surface model, use the commands Model → Decimate Surface Model and Model → Smooth Surface Model. These commands, and the parameters that control them, are described in the Model Menu section.
  18. Save the segmented object to a RAW or TIFF file with the File → Save Segmented Object command. If the object already has a link to a segmented image file (Image File in xManager), this file will be overwritten without notification. If a link does not already exist, you will be prompted to select a new file name.
  19. Save the object's surface model to an OBJ file with the File → Save Surface Model command. If the object already has a link to a surface model file (Surface File in xManager), this file will be overwritten without notification. If a link does not already exist, you will be prompted to select a new file name.
  20. Save the subject file, to save the file links and any landmarks and points of interest you created. The command is: File → Save Subject.


Note: Third-party software such as Mimics and ScanIP have more sophisticated tools for segmenting bones than Surface3D does. If you want to use one of those applications to segment a bone, use it to output a RAW file containing the segmentation and specify it as the Image File for the object in xManager. You can then load the subject into Surface3D and add landmarks and POIs to the object, using the segmented image data. If you also want to use a third-party application to create the surface model from the image data, output an OBJ file and specify it as the object's Surface File in xManager. You can then load the subject into Orient3D and define a reference frame and regions of interest on the object. When segmenting the bone in a third-party application, it is recommended that you crop the image data to the minimum bounding box around the bone's voxels, though this is not required. If you do crop the image data, do so before creating the surface model. It is important that the object's surface model (Surface File) be in the same reference frame as the segmented image data (Image File). More information about these reference frames can be found here.

other/dsx/surface3d/tutorials/segment_image_data_and_create_surface_models.txt · Last modified: 2024/07/17 11:44 by sgranger