Colors in thickness plugin: are they assigne based on absolute local thickness or standard deviation

223 views
Skip to first unread message

Mehdi

unread,
Aug 5, 2014, 7:21:36 PM8/5/14
to bonej-users-a...@googlegroups.com
Hi Michael,

We are using BoneJ plugin to analyse the uniformity of struts thickness in our metal foams with different pore sizes. The 2D macrograph images (taken with camera) showed that as the pore size decreases, the difference between the thickness of thin part of struts (at the middle) and its two thicker ends decreases. Accordingly, the homogeneity of struts thickness increases. We have shown it statistically with measuring coefficient of variation of thickness using boneJ in case of 3D representation. However, it is easier to show it graphically. The question is that how the BoneJ assigns the colors to the struts. Are the colors assigned based on the absolute local thickness of the struts or the standard deviation of the local thickness? If it is based on standard deviation, we can conclude that the structures with less color gradient have more homogeneous struts thickness (the color gradient is lower in case of smaller particle-pore). If not, how it is possible to assign the colors to the struts based of standard deviation of local thickness?

Moreover, can we have a color bar in thickness map?

Thank you for your help.

Regards,
Mehdi.

Michael Doube

unread,
Aug 6, 2014, 4:55:32 AM8/6/14
to bonej-users-a...@googlegroups.com
Dear Mehdi,

I replied to your colleague Ayub's request on the ImageJ list, here:
https://list.nih.gov/cgi-bin/wa.exe?A2=ind1408&L=IMAGEJ&F=&S=&P=14306

Etiquette note: Team cross-posting is not appreciated because I have very limited resources to help you.

For the benefit of BoneJ users who are not on the ImageJ list, here follows a more expansive reply:


> how the BoneJ assigns  the colors to the struts. Are the colors assigned based on the absolute local thickness of the struts or the standard deviation of the local thickness?

BoneJ assigns the colours for display based on the range of thickness values in the image. You should note that the pixel values are 32-bit floating point and the display uses the 'Fire' look-up table (LUT). If you are not sure of the difference between pixel value, LUT and display value, please do some background reading (e.g. the ImageJ user guide).

The code which does this is here, on lines 136-137:
https://github.com/mdoube/BoneJ/blob/master/src/org/doube/bonej/Thickness.java#L136

The LUT is stretched so that the minimal thickness is blue/black and the greatest thickness is yellow/white. Bear in mind that the underlying pixel values are not changed. To make all your images have the same colour:thickness relation, you have to set the min and max LUT display value to the same values in all the images. The most convenient way to do this is to run the following macro command:

setMinAndMax(min, max);

Where you should replace min and max with the minimum and maximum thickness values you want to display.

You can also add a gradient to the image which stretches between the min and max value, using Analyze > Tools > Calibration Bar.

Michael
Reply all
Reply to author
Forward
0 new messages