I am working on some medical image data, and I try to look into specific slice of 3d *.raw image. I know voxels are 16 bit int, and dimensions are 352*470*96. I checked it in some pro medical image viewer, it is alright. However, with the code I use, I display just white noise image.(but worked well for other, 8bit raw image). Also, printed size is half the original size, like it was 8 bit. I read some documentations on PIL, numpy etc but I think I just do not understand something. I open image data set, I change it to array, give it dimensions, dtype, and change it to image, right? I think there is something messed up in 'binvalues', but dont really know how to write it in simpler way.
P.S.1 If I want to change data type to e.g. 8 bit uint, is it just change in scipy.array? or it requires some more changes P.S.2 Lets say I have my array of image data and want to save it to *.raw data set. is it array.tofile? Here is my code ############################ import scipy as sc from pylab import * import array import Image fileobj = open("hand.raw", 'rb') binvalues = array.array('B') binvalues.read (fileobj, 352*470*96) data1 = sc.array(binvalues, dtype=sc.int16) data2 = sc.reshape(data1, (352,470,96)) fileobj.close() print data2.size , data2.dtype im = Image.fromarray(data2[:,:,40]) im.show() -- http://mail.python.org/mailman/listinfo/python-list