Trabecular Spacing Analysis

Tags: #<Tag:0x00007fa30c6c42e0>


By request I am starting a new thread.

I’m attempting to analyze bone using the Trabecular Spacing analysis in BoneJ.
It is a singular triangular bone with a single marrow cavity (like a standard limb bone, but smaller and triangular).
The bone shown in the pictures below is filled with trabecular spaces. These are not evident in the pictures here, which are only to demonstrate the marrow cavity.

I would like to use the Scale function to limit the space size to exclude the marrow cavity (shown below).
I was unable to use the Image>Scale parameters to further constrain my data. The error is that an 8-bit binary image is required. My stack is 8-bit so I’m not sure what is going wrong.

Using the Image>Scale constraint to limit the space would be exceedingly useful for me not just because of processing time. I’ve included two pictures of the bone I am scanning - I would like to exclude the marrow cavity. The marrow cavity is open to the space surrounding the bone in the stack so I need to make sure that that isn’t being included as Tb. Sp. By my calculations capping the max Tb. Sp. at about .5 mm would be adequate to exclude the surrounding space and the marrow cavity, but I’m not sure how to circumvent the 8-bit image notice that I’m getting.

Can you advise?
Thanks in advance and for the advice in the prior thread



Of note:
I have consistently used the BoneJ Tb. Th. plugin function to analyze Tb. Th and Tb. Sp these exact bones over the years and have been successful in getting solid data that matches the histology data. I’m uncertain as to why I’m unable to successfully execute the analysis now and am reaching out to determine what I’m doing differently that is causing a problem now.


Do you have an 8-bit stack of BINARY images (containing grey values 0 and 255 only!)? That is what the complaint is about.

Having said that and not knowing BoneJ that well, it looks to me as if you show two images of a stack projection rather than two individual stack slices. Would it be possible that you want to exclude the interior hole(?) from your measurement in each slice by using an Image>Adjust>Threshold… combined with an Analyze>Analyze Particles… (although you only have one particle as far as I can see) or combined with a Set Measurement…>Limit to threshold? This put in a loop to process all slices of the stack and summing the result would get you the total area of the bone. Multiplied by the tissue/slice/section thickness would give you an estimate of the tissue volume.

As an example macro, I processed the (projection of the stack in?) the lower image for you to study the difference between area measured with and without ‘limit to threshold’.

run("Analyze Particles...", "size=10000-Infinity add");
run("Set Measurements...", "area redirect=None decimal=9");
roiManager("Select", 0);
run("Set Measurements...", "area limit redirect=None decimal=9");


Thanks for replying.

I am using 8-bit stacks of binary images containing values from 0-255. These stacks have already been thresholded. I believe the binary image message is an error - it will output thickness, graphic result, etc. But it will not output Tb. Sp. (likely due to @mdoube’s suggestion that I need to reduce the surrounding space). When I do this it will give me a Tb. Sp. number, but the max number is representative of the marrow cavity. When I try to use the Scale function after cropping, with no other output parameters suggested (also suggested by @mdoube in an alternative feed) I receive the binary image error.

The images that are shown in this thread are merely screen shots of a 3D rendering. They are slices. They are for a better visual representation. While the I put up the screenshots to help I think they are distracting because they don’t show trabecular spaces. I’ve attached a slice - prior to thresholding to show the trabecular spaces that I am trying to measure.

BoneJ Tb. Sp. has worked on all of my prior data over the years (same bone), so I would prefer to continue using the BoneJ plugin for the current data. Analyze particles, while useful, does not give me output that I need on the bone. But I appreciate the suggestion.

Picture attached shows cross section with trabecular spaces in the bone.
39 AM



The Scale command is interpolating around the edges so there are values other than 0 and 255 created in the scaled down image. But, after your description, it seems like this is probably not the right way to approach your problem.

How about filling the outside (of the unscaled binary image) with 255, so that the only spaces left are in the medullary cavity, then running Tb.Sp? That way the only spaces in the image are the ones inside the medullary cavity and relatively small; it should finish OK.