在Python中使用numpy处理TIFF(导入,导出)

我需要一个python例程,可以打开和导入TIFF图像到numpy数组,所以我可以分析和修改包含的数据,然后再次将其保存为TIFF。 (它们基本上是灰度级上的光强度图,表示每个像素的相应值)

我试图找到一些东西,但没有关于TIFF的PIL方法的文档。我试图搞清楚,但只有坏的模式/文件类型不支持的错误。

我需要在这里使用什么?

首先,我从this page下载了一个测试TIFF图像,名为a_image.tif。然后我打开了PIL像这样:

>>> from PIL import Image
>>> im = Image.open('a_image.tif')
>>> im.show()

这显示了彩虹的图像。要转换为numpy数组,它就像下面这样简单:

>>> import numpy
>>> imarray = numpy.array(im)

我们可以看到,图像的大小和数组的形状匹配:

>>> imarray.shape
(44, 330)
>>> im.size
(330, 44)

数组包含uint8值:

>>> imarray
array([[  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246],
       ..., 
       [  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246]], dtype=uint8)

一旦你完成数组的修改,你可以把它变回一个PIL图像像这样:

>>> Image.fromarray(imarray)
<Image.Image image mode=L size=330x44 at 0x2786518>
http://stackoverflow.com/questions/7569553/working-with-tiffs-import-export-in-python-using-numpy

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在Python中使用numpy处理TIFF(导入,导出)