I think it might be helpful to add an option to Segment Editor to disable smoothing of the surface when generating it from the label map representation. When regions are small, smoothing can lead to significant under-estimation of the boundary, as shown in the screenshot below.
Maybe we could normalize default PassBand cutoff frequency by the spacing of the input binary labelmap to not require any tuning based on the voxel size.
I can imagine that for certain applications cube may be acceptable but it often provides very poor results (you cannot even make out the shape of a segment).
If smoothing is done right, it just removes artifacts due to finite resolution. If relevant details are lost as a result of smoothing (there is no smoothing factor that removes staircase artifacts without removing relevant details) then it means that a supersampled binary labelmap or a fractional labelmap has to be used.
To produce the final smoothed models, you should process all labels at once. Segments that touch will remain touching after smoothing. If the entire volume is segmented, this will reduce the shrinkage.
Segments are independent volumes that may even overlap each other, but we do use this joint smoothing technique when we apply smoothing to modify segments (to remove noise or segmentation errors). For display, we only apply just as much smoothing to remove staircase artifacts.
Do you think it would make a difference if we didn’t just smooth a structure as is but we add a “negative” structure around it and smooth together? (other than of course that the structure’s surface will not be treated as a boundary anymore, so BoundarySmoothing flag will have no effect)
Setting smoothing factor to 0 in the “Advanced segmentation conversion” setting produces the result I wanted to see in this example. I think adding a checkbox somewhere in Segment Editor that would effectively reset this parameter to 0 would be helpful, and would provide functionality equivalent to what was available in the old Editor.
This is implemented now in Slicer master branch and should be available in tomorrow’s nightly build. A checkbox is available directly in the “Show 3D” button’s menu: