У меня есть два изображения, которые я хочу сравнить с помощью python и opencv.Как сравнить функции серфинга в python opencv2.4
Я понял, как извлечь функции для серфинга из одного изображения из этой книги: Программирование Vision Vision с помощью Python.
извлечь функции следующим образом:
import cv2
from numpy import *
# read image
im = cv2.imread('empire.jpg')
# downsample
im_lowres = cv2.pyrDown(im)
# convert to grayscale
gray = cv2.cvtColor(im_lowres,cv2.COLOR_RGB2GRAY)
# detect feature points
s = cv2.SURF()
mask = uint8(ones(gray.shape))
keypoints = s.detect(gray,mask)
# show image and points
vis = cv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)
for k in keypoints[::10]:
cv2.circle(vis,(int(k.pt[0]),int(k.pt[1])),2,(0,255,0),-1)
cv2.circle(vis,(int(k.pt[0]),int(k.pt[1])),int(k.size),(0,255,0),2)
cv2.imshow('local descriptors',vis)
cv2.waitKey()
Теперь, как я могу сравнить с другими ключевыми точками наборов ключевых точек, который исходит от эталонного изображения, используя?
используя это мой код с двумя изображения, где один st то же изображение масштабируется, я получил до результата следующее сообщение: Warning: недопустимое значение, обнаруженное в divide – user601836
Да, это просто ошибка времени выполнения, я вижу это сам время от времени. Я не понимал, что это происходит для масштабированных версий изображения. Когда у меня будет какое-то время, я углубись в нее. Однако до сих пор это не приводило к каким-либо проблемам для меня. – casper