ฉันเจอคำตอบที่ทำงานสำหรับฉันดังนั้นฉันอยากให้ผมร่วมแบ่งปันในกรณีที่คนอื่นมีคนที่คล้ายกันคำถาม รหัส compares ง(หน่วยเป็นพิกเซล)ของภาพแล้วเจองความแตกต่าง เหมือนกัน(หน่วยเป็นพิกเซล)จะได้ค่า 0. รู้เรื่องนี้เราสามารถใช้ numpy หากไม่ใช่ค่าศูนย์(หน่วยเป็นพิกเซล)และใช้หมายเลขนั้นจะคำนวณความแตกต่างฉันได้อาร์ชี่เบตตี้เวโรนิก้า
คุณสามารถใช้รหัส
import cv2
import numpy as np
img1 = cv2.imread("16x16_orig.png", 0)
img2 = cv2.imread("16x16_dif.png", 0)
#--- take the absolute difference of the images ---
res = cv2.absdiff(img1, img2)
print(res)
#--- convert the result to integer type ---
res = res.astype(np.uint8)
print(np.count_nonzero(res))
#--- find percentage difference based on number of pixels that are not zero ---
percentage = (np.count_nonzero(res) * 100)/ res.size
print(percentage)
ใช้สองรูปภาพด้านล่างจะต้องกลับมาเป็นคะแนนของ 50%นั่นคือสิ่งที่เราคาดไว้
ภาพต้นฉบับ
แตกต่าง
หลังจากที่เราได้ absdiff ที่ผลลัพธ์จากอาเรย์ดูเหมือนนี้:
[[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]]
มันคือสิ่งสำคัญสำหรับข้อคนั่นภาพที่คุณต้องเปรียบเทียบนจะต้องเป็นคนเดียวกันขนาดด้วย
สำหรับพวกนั้นอยากรู้เรื่องรูปภาพในแบบต้นฉบับคำถาม ผลเป็น 2.56%วามแตกต่างกับ 1292 ไม่มีเลขศูนย์(หน่วยเป็นพิกเซล)