这里是最低工作例如:scikit图像:写一个ndarray与imsave图像,读回imread,数据不匹配
import numpy as np
from skimage.io import imsave, imread
image = np.array([[[109, 232, 173],
[ 55, 35, 144]],
[[ 43, 124, 185],
[234, 127, 246]]], dtype=np.uint8)
imsave("test.jpg", image)
rb_image = imread("test.jpg")
print("original image")
print(image)
print("read back image")
print(rb_image)
运行后,其结果是,在ndarray阅读从文件返回不匹配
original image
[[[109 232 173]
[ 55 35 144]]
[[ 43 124 185]
[234 127 246]]]
read back image
[[[111 208 255]
[ 42 61 138]]
[[ 72 140 201]
[141 131 218]]]
有人可以给我一些建议吗?
是的。它也适用于我。我也尝试保存并读取两次jpg。图像中的数据仍然发生变化。所以在JPG中的数据损失是巨大的。顺便说一下,在这种情况下,PNG的文件大小比JPG小很多,这很奇怪,我猜这是因为数据非常小,试图压缩它像JPG一样,会增加大小而不是降低它的大小算法打算做。 –
@scotthuang当然......数据甚至不是宏块的大小(也可能是单通道,也许......)。为什么不阅读wiki上的jpeg来理解这一点,如果你有兴趣?为什么没有upvote这个答案,因为它似乎你在这里获得了一些东西。 – sascha
我将在稍后尝试维基,我正在项目中。太多事情正在发生。不想分心。我上传了你的答案,我等了一天,看看是否有其他人评论你的答案,分享一些想法...... –