如果有一个numpy数组,shape=MxN,要作为真灰度图保存(只有一个通道而不是三个通道色值相同),我尝试过用matplotlib应该是不可以的…
目前测试的可用代码只有:
import scipy.misc
scipy.misc.toimage(image_array).save('outfile.jpg')
上述代码可以保存数组的真实数据,有几个通道就保存几个通道
如果是后缀png,我看了一下源码用matplotlib
应该是不可能转化为灰度图的,因为里面会确认数组被转化为4通道图片…
def write_png(self, fname):
"""Write the image to png file with fname"""
im = self.to_rgba(self._A[::-1] if self.origin == 'lower' else self._A,
bytes=True, norm=True)
_png.write_png(im, fname)
if (format == 'png' or (format is None and isinstance(fname, str) and fname.lower().endswith('.png'))):
image = AxesImage(None, cmap=cmap, origin=origin)
image.set_data(arr)
image.set_clim(vmin, vmax)
image.write_png(fname)
···
其他格式的不清楚,还没有尝试过,留个坑以后填吧...