#python #opencv #python-imaging-library
Вопрос:
Я прочитал изображение, используя
img1 = cv2.imread('xxx.jpg')
и подсчитал сумму массива
sum1 = img1.sum()
Затем я сохранил массив изображений и прочитал его еще раз, как
cv2.imwrite('test2.jpg', img1) img2 = cv2.imread('test2.jpg')
и подсчитал сумму, как
sum2 = img2.sum()
Я ожидал , что sum1 == sum2
это True
так, но на самом деле это не так.
Почему?
Комментарии:
1. Вы читаете растровое изображение из файла .jpg, затем сохраняете растровое изображение в формате .jpg, а затем считываете растровое изображение из полученного файла .jpg — но .jpg-формат с потерями, поэтому я ожидаю, что это будет причиной.
2. Как сказал Грисмар, .jpg-это формат с потерями. Если вы хотите сохранить оригинал,
imwrite
он будет сохранен в формате .png или .bmp.
Ответ №1:
Ответ содержится в комментариях.
Вы читаете растровое изображение из файла .jpg, затем сохраняете растровое изображение в формате .jpg, а затем считываете растровое изображение из полученного файла .jpg — но .jpg-формат с потерями, поэтому я ожидаю, что это будет причиной.