使用Mahotas读取和写入图像

3 投票
1 回答
1978 浏览
提问于 2025-04-17 10:24

我正在尝试用Mahotas写一张图片,但发现这件事奇怪地难。

img = mahotas.imread('foo.png', True)
mahotas.imsave('bar.png', img)

我遇到的错误是:

ValueError: mahotas.freeimage: cannot write arrays of given type and shape.

我在OS X系统上,使用brew安装了freeimage。

1 个回答

5

这里是mahotas的作者。这个错误信息不太好(我会修复它),但我来解释一下发生了什么。

灰度图像是浮点型的图像(也就是说,img.dtype == numpy.float64),而浮点型的图像不能保存为PNG格式。

你需要把它转换成numpy.uint8

mahotas.imsave('test.png', img.astype(numpy.uint8))

这样就可以正常工作了。

撰写回答