Alert Circle

This page is not compatible with Internet Explorer.

For security reasons, we recommend that you use an up-to-date browser, such as Microsoft Edge, Google Chrome, Safari, or Mozilla Firefox.

A Clean Slate: Using ROIs to Polish the Surface

A Clean Slate: Using ROIs to Polish the Surface

ROIs are flexible—you can create them from volumes and polish them up a bit using operations like adding, intersecting, subtracting, smoothing, or even manually adjusting them with the drawing tool.

Now imagine we want to segment dark material, like plastic, but the determined surface also includes brighter materials—among them noise and metal artifacts. In other words, we would have a perfect surface if not for these bright artifacts.

2D section of the surface determination with noise

A surface determination generally includes bright material, noise, and metal artifacts.

3D view of the surface determination with noise

The surface looks a bit rough and grainy in the 3D view, as well.


To overcome this hurdle, we need to work with ROIs. But before we can work our magic, we need to create an ROI from the volume. Then we can clean it up by subtracting or adding other ROIs from it.

Now we have this polished ROI ready to go for a surface determination, but the algorithm insists on finding a better place for the surface—even if the "Search distance" is set to 0—without acknowledging the ROI we've created. There has to be a way around this!

Surface determination dialog with search distance set to 0

Even with the search distance set to 0, the surface doesn't quite follow the starting contour.

We can make sure the search distance is set to 0, but there is a secret weapon hidden in the "Surface determination" dialog we can use: edge threshold.

Edge threshold specifies the minimum gray value difference to locally correct the starting contour. If the gray value difference falls below this value, the starting contour will be used as the determined surface. In our case, our ROI is our starting contour, so all we have to do is set it to a big enough number so that all gray values are below it. We can keep it simple and give it the maximum possible value (65535 for 16-Bit unsigned data sets).

Surface determination dialog with maxed edge threshold

Maxing out the edge threshold value while setting the search distance to 0 does the trick.

Surface determination: initial vs. polished 

And that's it! Now our surface is as crisp and clean as our ROI.

Did You Know? Converting an ROI to a Surface or Tetrahedral Mesh

If we convert the ROI to a surface mesh or tetrahedral mesh, we are actually converting the determined surface within the ROI—not the ROI contour. If we want to include the background in the resulting surface or tetrahedral mesh, we need to use our nifty trick.

ROI includes the background part

ROI includes the background part.

Tetrahedral mesh, converted from the ROI

Tetrahedral mesh, converted from the ROI

Ready to learn more?

Users of VGSTUDIO MAX can find out more about surface determination and working with ROIs in the tutorials included in the software.

Got a Story?

If you have a VG Story to tell, let us know! Contact our Storyteller Team at: storytellers@volumegraphics.com. We look forward to hearing from you.