Ventricular Cavities 3D Volumes Measurement on ImageJ

Hello everyone,

I’m currently trying to measure 3D heart volumes on light sheet microscopy stack. However, I’m encountering some problems, and I need some help please.

Here is the story : when I acquire the images, I have something like that :

First step, to calculate the volume of the heart “muscles”, I threshold the stack to obtain something like that :

And thanks to an advice of @ThomasBoudier that I have found on an other site, I am able to calculate the volume of the thresholded area using the histogram and calibration (as I know my voxel size). So, this is great.

Now, here come the real problem. I want to measure the volume of the ventricule cavities (left one, right one, and both of them at the same time). Though I have tried many techniques, I am not able to find a solution to isolate on the stack the cavities of interest and caculate their volumes. Do you have any solution, please?

Thank you in advance for your help, and have a nice day,
Nabil Nicolas.

1 Like

Re-actualising the post to find advices, please.

although it probably won’t solve all of your problems, a local rather than a global threshold might help getting better segmentation. I used the “Phansalkar” Method to get this:


Thank you Joachim for the advice.
It helped me a little bit, but I have now to find a way to close entirely the ventricule before thresholding.
Apparently, there is a way to manually draw on the whole stack a limit line that will be integrated in the foreground part of the images.

Hello everyone,

After many days of tests, I’ve found a partial automatic solution to the problem :
The idea is to draw a (or multiple) line(s) on the whole stack with “Overlay Brush” tool (with 1 pixel of diameter and colored in white) in order to close the cavities.
Then, as your image is colored in black and white, using the “Flood Fill” tool with any color (except black and white), you color the cavity or cavities on the different images of the stack.
Finally, using the “Histogramm method” of @ThomasBoudier I’ve presented in the first post, you may calculate the volume.

Now here is the final problem I encounter, and I hope you will help me :
How to color a part of an image (for example, a cavity) and let this be applied to the whole stack ?

I hope the first part of this post will help some of you, and I thank you in advance for your advices,

Dear Nabil,

Glad to see my method is useful, it is not exactly my method of course. Actually once your contours are closed on all slices, you should be able to invert the image to get the cavities white and the borders black. Using a 3D segmentation technique such as 3D Object Counter or 3D Simple segmentation you should be able to detect and label the different objects.

Hope this helps


1 Like

Hello Thomas,

Thank you very much for your advice that solved the final part of my problem.
As you suggested it, I inverted the colors and then applied 3D Simple Segmentation, and I obtained that :

So just a recap if someone has the same problem :

  1. Draw the limits of your cavity using the “Overlay Brush Tool” (with 1 pixel of diameter and colored in white
  2. Threshold your image in a way that the background is black and the organ is white
  3. Invert the image to get the cavity in white and organ in black
  4. Apply the 3D Simple Segmentation to color each part of your image in a different color
  5. Do the histogramm and find the number of voxel associated to the color of the cavity
  6. Calibrated using the formula : number of voxeldimension of a voxel (xy*z)
  7. Finished ! :smile:

Nb: the Simple Segmentation may take some time, so don’t panic.

Thank you again and have a really nice day !