Я сделал регистрацию изображений между двумя изображениями (img_source, img_ref), используя следующий код.
# Find homography
h, mask = cv2.findHomography(points1, points2, cv2.RANSAC)
# Use homography
height, width, channels = im2.shape
im1Reg = cv2.warpPerspective(img_source, h, (width, height))
Это работает отлично.Затем я хочу узнать местоположение некоторой конкретной точки (скажем, точки (x, y) на img_source) на зарегистрированном изображении (скажем, (x, y) на im1Reg).Следуя объяснению warPerspective на веб-сайте OpenCV, я применяю следующее уравнение:
x = (M11x0 + M12y0 + M13) / (M31x0 + M32y0 + M33) y = (M21x0 + M22y0 + M23) / (M31x0 + M32y0 + M33)
, где M_ {i, j} - запись матрицы преобразования h.
Однако полученный (x, y) неверен (несовпадение).Любые предложения здесь?
Спасибо!