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=14306Etiquette 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:
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#L136The 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