Images representing physical quantities: image type, pixel values, calibration

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Images representing physical quantities: image type, pixel values, calibration

Davíð Þór Bragason
Dear list,

I hope my question is not too vague.

I have written a Java plugin which takes 16 bit grayscale images (plus some
non-image objects) as input and calculates several images from them that
represent physical quantities at every pixel. As the quantities are
represented as double values in the code, I have made FloatProcessors from
the arrays, so that the pixel values of the (now 32 or 64 bit) images
directly give the respective quantity.

Currently the resulting image stacks are about 130MB and will soon
quadruple. So, I would like to go down to 16 bit images to reduce memory
footprint, which would also allow the use of certain filter plugins that
don't take 32 bit images.

Say the quantity should lie between 0.0 and 1.0 (in which case I'd allow
for values from say -2.0 to +3.0 to have room for tails of the distribution
of values, clamping far outliers. Would it then be reasonable to linearly
map this range to say [ 10,000 to 60,000 ] in an short variable (unsigned
since ImageJ maps any negative values to the positives). Then I'd have to
calibrate the image, since the plugin reads the physical quantities from
the images for further processing. I'd need to repeat these steps for the
different physical quantities that the plugin works with.

Any tips on this would be appreciated! Thank you.

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Images representing physical quantities: image type, pixel values, calibration

Cammer, Michael
If you are using 16 bits, you could use the first three bits to cover a range of 8, for instance, the next five bits to cover a range of 32 values, etc. until you use all 16.  Or maybe use 8 bit images with two channels in hyperstack to make generating LUTs to visually describe the data easier.  Or buy more memory.  

_________________________________________
Michael Cammer, Assistant Research Scientist
Skirball Institute of Biomolecular Medicine
Lab: (212) 263-3208  Cell: (914) 309-3270

________________________________________
From: ImageJ Interest Group [[hidden email]] on behalf of Davíð Þór Bragason [[hidden email]]
Sent: Wednesday, May 28, 2014 7:10 PM
To: [hidden email]
Subject: Images representing physical quantities: image type, pixel values, calibration

Dear list,

I hope my question is not too vague.

I have written a Java plugin which takes 16 bit grayscale images (plus some
non-image objects) as input and calculates several images from them that
represent physical quantities at every pixel. As the quantities are
represented as double values in the code, I have made FloatProcessors from
the arrays, so that the pixel values of the (now 32 or 64 bit) images
directly give the respective quantity.

Currently the resulting image stacks are about 130MB and will soon
quadruple. So, I would like to go down to 16 bit images to reduce memory
footprint, which would also allow the use of certain filter plugins that
don't take 32 bit images.

Say the quantity should lie between 0.0 and 1.0 (in which case I'd allow
for values from say -2.0 to +3.0 to have room for tails of the distribution
of values, clamping far outliers. Would it then be reasonable to linearly
map this range to say [ 10,000 to 60,000 ] in an short variable (unsigned
since ImageJ maps any negative values to the positives). Then I'd have to
calibrate the image, since the plugin reads the physical quantities from
the images for further processing. I'd need to repeat these steps for the
different physical quantities that the plugin works with.

Any tips on this would be appreciated! Thank you.

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

------------------------------------------------------------
This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain information that is proprietary, confidential, and exempt from disclosure under applicable law. Any unauthorized review, use, disclosure, or distribution is prohibited. If you have received this email in error please notify the sender by return email and delete the original message. Please note, the recipient should check this email and any attachments for the presence of viruses. The organization accepts no liability for any damage caused by any virus transmitted by this email.
=================================

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html