1

我正在使用 matplotlib.pyplot 在 Spyder 中工作,并希望将 numpy 数组保存到图像中。imsave() 的文档说,我可以保存的格式取决于后端。那么后端到底是什么?我似乎能够保存 .tiff 图像,但我希望它们保存为 8 位 tiff 而不是 RGB-Tiff。有什么想法可以改变吗?

4

1 回答 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 回答