
Hi All, I am new to python and image processing in general. I am having trouble working with 12 bit images to do some very simple calculations. Here is some example code: #!/usr/local/bin/ipython #import Imaging Library from PIL import Image from skimage import io, filters from skimage import img_as_float from skimage import exposure #import pylab for plotting from pylab import * Aim = io.imread("A.tiff") Bim = io.imread("B.tiff") Cim = io.imread("C.tiff") Dim = Aim - Cim Eim = Bim - Cim #print min and max values of the background subtracted images print("min %d max %d" % (Aim.min(),Aim.max())) print("min %d max %d" % (Bim.min(),Bim.max())) print("min %d max %d" % (Dim.min(),Dim.max())) print("min %d max %d" % (Eim.min(),Eim.max())) Input images A,B and C are 12 bit greyscale TIFFs. Output: min 0 max 4095 min 0 max 4095 min 0 max 65533 min 0 max 65533 The input image data response to min and max make good 12bit sense, but it is totally beyond me how I am getting 16bit responses for D and E. I want to understand what's happening here so that I don't get bitten when I try to do transformations that require me to use floating point math. thanks, Johnny