Я написал этот маленький код, чтобы сравнить значения оттенков серого двух изображений 100x100 jpeg. Однако производительность очень разочаровывает (1,5 секунды для 10.000 сравнений). Есть ли способ достичь лучшей производительности?Python Opencv img.item() производительность слишком медленная
Вот код:
import cv2
import numpy as np
import math
import datetime
img1 = cv2.imread('Testbild 2014-08-23 17:27:25.141362.jpeg', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('Testbild 2014-08-23 17:27:25.061802.jpeg', cv2.IMREAD_GRAYSCALE)
height, width =img1.shape
cnt = 0
threshold = 10
print("start:" + str(datetime.datetime.now()))
for y in range(0 , height):
for x in range(0 , width):
val1 = img1.item(y,x)
val2 = img2.item(y,x)
diff_abs = math.fabs(int(val1)-int(val2))
if diff_abs > threshold:
cnt += 1
if x == height and y == width:
break
if x == height:
x=0
if y == width:
y=0
print("end:" + str(datetime.datetime.now()))
print("Result: " + str(cnt))
Большое спасибо за ваши ответы!
Вы человек! Время выполнения до 0,01 секунды - превысило мои ожидания. Большое спасибо. Извините за путаницу с x и y и спасибо за дополнительное объяснение. – flo