1 回答

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
您遇到的現(xiàn)象是數(shù)據(jù)壓縮沒有 100% 嚴(yán)格定義的結(jié)果。PNG 文件使用DEFLATE壓縮,它要求給定的壓縮文件必須始終解壓到相同的輸出,但不要求給定的輸入必須生成相同的壓縮文件。這為壓縮算法提供了改進(jìn)空間,其中可以在不同類型的文件上找到更優(yōu)化的壓縮。聽起來您的原始圖像是使用比使用更好(或只是不同)的算法壓縮的cv2。為了復(fù)制精確的壓縮版本,您可能需要與用于創(chuàng)建原始圖像的壓縮算法完全相同的實(shí)現(xiàn)。
如果要確保圖像確實(shí)相同,則應(yīng)比較解碼后的像素值。以不重新發(fā)明輪子的名義,我將向您推薦這篇關(guān)于該主題的優(yōu)秀博客文章。
編輯:鏈接的文章對(duì)我來說加載不一致,所以我在這里復(fù)制了代碼以供參考。
import cv2
import numpy as np
original = cv2.imread("imaoriginal_golden_bridge.jpg")
duplicate = cv2.imread("images/duplicate.jpg")
# 1) Check if 2 images are equals
if original.shape == duplicate.shape:
print("The images have same size and channels")
difference = cv2.subtract(original, duplicate)
b, g, r = cv2.split(difference)
if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0:
print("The images are completely Equal")
添加回答
舉報(bào)