【发布时间】:2020-11-01 09:16:30
【问题描述】:
我有以下图片:
我正在做以下事情
- 首先我阅读了一个图像
img = skimage.io.imread('original.jpg'),它具有以下直方图:
- 然后,应用
he_img = skimage.exposure.equalize_hist(a)后,我得到以下直方图:
- 但是当我保存时,然后加载并查看该图像的直方图,我得到以下信息:
skimage.io.imsave(fname = 'he.jpg', arr= he_img)saved = skimage.io.imread('he.jpg')
为了能够保存均衡图像,我还需要在我的过程中添加什么?
【问题讨论】:
-
这看起来像是一个非常均衡的直方图。问题是什么?您看到的直方图差异可能是因为图像被转换为 8 位无符号整数以写入文件。
-
问题是保存图像时,再次加载时我没有在第二个直方图中显示直方图,可能是您提到的问题。知道如何不将图像转换为 8 位吗?我想在加载图像时重现相同的第二个直方图
-
您需要将图像保存为浮点格式。你可以用 TIFF 做到这一点,但我不知道哪些标准库支持浮动 TIFF。您也可以将其写为矩阵,而不是图像格式。 numpy.org/doc/stable/reference/generated/numpy.save.html
-
其实问题在于 jpg 使用了有损压缩算法。原来
TIFF是一种无损压缩格式,但我使用PNG,因为它是一种更常见的格式,它解决了问题。但是非常感谢,您的回答引导我找出真正的问题
标签: image-processing python-imaging-library scikit-image