這裏是最低工作例如: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
我將在稍後嘗試維基,我正在項目中。太多事情正在發生。不想分心。我上傳了你的答案,我等了一天,看看是否有其他人評論你的答案,分享一些想法...... –