Dilation erosion element type


Does 3DSlicer offer any more element types (sphere, circle, rectangle etc.) than squared pixels?

For example, I have a tomography image which is high resolution (very small pixel size). That, upon surface-export, results in a jagged isosurface with very large number of triangles which I do not need.

If I could use a sphere or ball as my dilation-erosion element of chosen size, I could get a lot smoother, non-pixelated (and less number of triangle) surface for my use case.

Any information / advice on this will be highly appreciated.

With regards,

You can get reducing the numer of triangles by using decimation on your mesh… If I were you I would set it to 6% and see how it gets

1 Like


Thanks for your suggestion. Unfortunately ‘Decimate’ doesn’t work for my use case. It couldn’t remove the jagged edges, rather resulted in bad quality triangles.

Then I tried using the Surface Models > Advanced > Smoothing. After playing with the parameters (Iterations: 100, Relaxation: 0.1) , I could reduce the jagging a lot but not without a ~15% decrease in the overall volume!

Any other ideas, folks?

Maybe you can try some kind of lapalacian smoothing filter for polydata and then decimate
Maybw try with rhe taubin one.

Hopw it helps

1 Like

It looks like your input data was pixelated (binarized) before the original surface was generated. Starting with an original continuous tone scan would be the normal way to generate a smooth isosurface.

1 Like

@mau_igna_06 Okay. Reducing the total number of triangles isn’t hard anymore, Blender (v 3.1.2) serves the purpose quite well. I tried with the Taubin option as well, that also removes volume while smoothing!

@pieper exactly. I got a binary pixelated tomography data and I have make smooth surface out of it. You’re absolutely in the right direction:

I realise that even if Slicer offers sphere type (which is not available at the moment I guess?) dilation or erosion elements, simply working with those on square pixelated tomography data would inevitably result in the loss of some volume :grin:.

So my question now changes into – Is it possible to get smooth surface out of binary pixelated data (negligible loss of volume)?

If the mesh-based smoothing is failing (which make some sense given that the data is basically aliased) then converting the mesh to an image, smoothing in image space, and re-isosurfacing may work better. You will have options about kernel size, weights, and thresholds so you can see what works best for that data.

1 Like

Thanks all. For now, I used the Blender provided smoothing tools, but generating the surface without any “voxelized segmentation” would be best if smoothing induced volume loss is unacceptable!