我正在使用 matplotlib.pyplot 在 Spyder 中工作,并希望将 numpy 数组保存到图像中。imsave() 的文档说,我可以保存的格式取决于后端。那么后端到底是什么?我似乎能够保存 .tiff 图像,但我希望它们保存为 8 位 tiff 而不是 RGB-Tiff。有什么想法可以改变吗?
问问题
3136 次
1 回答
2
如果您尝试将数组保存为 mat 的 tiff (没有轴标记等),则最好使用PIL。
(这假设您正在使用ipython --pylab
,因此rand
已定义)
写:
import PIL.Image as Image
im = Image.new('L',(100,100))
im.putdata(np.floor(rand(100,100) * 256).astype('uint8').ravel())
im.save('test.tif')
重要的ravel()
是,putdata
需要一个序列(即一维)而不是数组。
读 :
im2 = Image.open('test.tif')
figure()
imshow(im2)
和输出文件:
$ tiffinfo test.tif
TIFF Directory at offset 0x8 (8)
Image Width: 100 Image Length: 100
Bits/Sample: 8
Compression Scheme: None
Photometric Interpretation: min-is-black
Rows/Strip: 100
Planar Configuration: single image plane
于 2013-01-24T16:25:21.140 回答