Ellipsoid factor on open sub-volume


Does the ellipsoid factor require closed triangulated surfaces ? I would like to use it on sub-volumes extracted from a complete trabecular bone sample to set up the parameters. Obviously, when I crop a sub region in the file, the plates or rodes on the edges are open.

If not, do you know an efficient way to extract closed sub-volumes ?

N. Rogalski

The input to Ellipsoid Factor is a binary image, so it doesn’t require a mesh.
If the foreground hits the image boundary, ellipsoids that grow so more than half of them is outside the boundary are discarded, but those that are mostly inside are kept and may contribute to the EF.
Hope this helps!


This depends a bit on how you did the cropping. If the features intersect with the sides of the image, what @alessandrofelder writes is correct. ‘Outside’ the image is treated as infinite foreground presenting no boundaries to ellipsoid growth. If an ellipsoid grows so that it is more than half outside the image boundaries, it is culled and does not contribute to the result.

On the other hand, if your cropping is irregular so that you have created new foreground/background boundaries that are contained within the image volume, these new cut surfaces will be treated as specimen boundaries for the purposes of fitting ellipsoids.

Thank you for these answers. Here is why I talk about a triangular mesh :
I have some CT data with bad resolution (80um). I would like to artificially lower the resolution of my Data. I am thinking of smoothing the STL, then voxelize it and run the EF on the new binary stack. First, do you think it would work ?
The reason why I have open surfaces is that I would like to calibrate the EF inputs on a sub-volume extracted from the smoothened STL file, before running it on the whole trabecular sample. To do so, I crop a cube inside the whole STL file, resulting in open surfaces on the edges.

It might - as long as the features are represented by >5 (>10 is better) pixels. Bear in mind that the smoothing process will remove both ‘jaggies’ from pixel edges and small features. Also, the pixels in your output binary image must have isotropic spacing in (x, y, z).

The open surfaces on the edges/sides of the cropped cube will not constrain the growth of ellipsoids, as described above: ‘outside’ the volume is treated as infinite foreground.

Replying here to maintain continuity. Ellipsoid Factor works on the foreground (255) pixels regardless of the display colour of the look-up table (LUT). Hover your mouse over the image while checking the status bar and note the pixel value of the bone regions. It’s likely that your mesh has been created “inside - out”, in which case you should invert the image prior to running Ellipsoid Factor.

Thank you for that answer. I solved the problem by replacing the values in the binary stack from 1 to 255.

There is now an issue about memory. The console tells me this : java.lang.OutOfMemoryError: Java heap space.

There are quite a lot of voxels in my binary image (700x744x492). Is it doable with a regular computer ? I would like to use 200 vectors, 0.1 sampling increment and 1 point/ellipsoid.