Chuck Pepe-Ranney wrote:
Hello,
I am wondering if I can use PIL to manipulate some fluorescent microscopy images. Specifically, I will have two images of the same field but each will be taken under different emission filters. What I need to do is loop through the pixels in the first image multiply each pixel's intensity by a factor then divide it by the intensity of the spatially corresponding pixel in the second image. There are more steps to follow but they are seemingly routine image manipulation tasks. The images will be in tiff format. Would PIL be a suitable solution to this problem?
I don't claim to be an expert, but here are some suggestions. You can do simple manipulation in PIL. See for instance the ImageChops, ImageMath, etc. modules. Also take note of the "pixel access object", new in PIL 1.1.6, described under "load" in http://www.pythonware.com/library/pil/handbook/image.htm.

Another alternative is to do the image manipulation in numpy/scipy. Also new in PIL 1.1.6 are operations to convert PIL images to and from numpy arrays. See asarray() and fromarray() here: http://effbot.org/zone/pil-changes-116.htm.

Yet another alternative for sophisticated image manipulation is OpenCV, a C/C++ library with several python interfaces. OpenCV 1.0 is well-documented in an O'Reilly book. OpenCV 2.0 just came out in beta (the beta is called 1.2, for some reason), and has an improved python interface which I have not looked at yet.

Dan
_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to