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 |
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 |
Free forum by Nabble | Edit this page |