代码如下:情况是需要保存一张resize过后的图片,再次读进来发现像素值完全不一样。
经过多次读写,分别输出了前5个像素值,和所有像素的总和。
import cv2
img = cv2.imread('../ILSVRC2012_val_00049999.JPEG') #就是上面那张图
print(img[0,0,:])
img1 = cv2.resize(img,(224,224))
print(img1[:5,0,0],img1.sum())
cv2.imwrite('ILSV224.jpg',img1)
img2 = cv2.imread('ILSV224.jpg')
print(img2[:5,0,0],img2.sum())
cv2.imwrite('ILSV224.jpg',img2)
img3 = cv2.imread('ILSV224.jpg')
print(img3[:5,0,0],img3.sum())
cv2.imwrite('ILSV224.jpg',img3)
img4 = cv2.imread('ILSV224.bmp')
print(img4[:5,0,0],img4.sum())
cv2.imwrite('ILSV224.jpg',img4)
输出如下:发现像素的总和每次都不一样。
经过搜索发现,因为jpg是有损压缩格式,若要像素值完全不改变的话,使用png或者bmp