Significant digit/decimal place count in multiplying process


#1

Hi all,

I need to increase the amount of decimal place values I can enter into the “multiply” math process (Process > Math > Multiply). Currently, I am able to enter 3 digits past the decimal place (ex; 1.024), but I would like to enter more! I ideally 7 or 8 values past the decimal place.

All solutions welcome! Below are some details on the project for background info.

Ryan

I am working with 16-bit radiograph images; 1024x1024 pixel distribution of grey scale values ranging between 0 & 65335. I take time series radiographs of rock fragments one daily for a month and a half. The radiograph is set to specific voltage and amperage settings, but the photon beam varies slightly between days (maybe due to the time of day or power supply within the grid). I then register the images and use a region within an internal standard to get an average greyscale value. I use the difference between greyscale values within the internal standard of each image to normalize each of the time series images to the reference image (reference image = first image taken). This value has many decimal places and to normalize to images accurately, I need to enter up to 7 or 8 values past the decimal place.


#2

Good day Ryan,

up to 9 decimals should be save.

In any case you should watch how many decimals make sense with respect to your data.

Regards

Herbie


#3

Hi Herbie,

Thank you for replying,

I am uncertain if I understand your response. May you clarify for me by answering this question and possibly elaborating?

So if I type in the number 1.03892259 into the “multiply” process, are all the digits represented in the equation? When I reopen the “multiply” process, the number that appears is 1.039.

This leads me to believe that the digits beyond 4 decimal places are not being saved.

Ryan


#4

Ryan,

you can test it yourself.

Try the following example macro:

newImage("Test-Img", "32-bit black", 64, 64, 1);
run("Select All");
setBackgroundColor(255, 255, 255);
run("Clear", "slice");
run("Multiply...", "value=0.123456789");
getRawStatistics(nPixels, mean );
//close();
print( d2s( mean, 9 ) );

Paste the above macro code to an empty macro window (Plugins >> New >> Macro) and run it.

We see about seven to eight decimals appear correct. (Please realize that the macro performs the computation of the mean value, i.e. one must take into account some computational limitations due to rounding etc.)

HTH

Herbie


#5

Thank you again for your assistance!

I apologize for the late reply but I must tell you how this macro has helped me on it’s own and by introducing me to macros! The amount of time saved has been immense.


#6

Ryan,

thank you for your kind feedback!

I’m sure you’ve alraedy discovered the IJ-macro sites:
https://imagej.nih.gov/ij/developer/macro/functions.html
https://imagej.nih.gov/ij/developer/macro/macros.html

Best

Herbie