Я пытаюсь извлечь матрицу гомографии между двумя изображениями. Исходное плоское изображение и другое изображение, содержащее первое. Я следую инструкциям в этом руководстве https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_feature_homography/py_feature_homography.html#feature-homography.
Найденные совпадения выглядят великолепно, но при рисовании прямоугольника, содержащего изображение, он выглядит неправильно, потому что он не содержит изображения... но одна из границ в порядке... Так что же происходит? Является ли матрица гомографии неправильной или это просто проблема визуализации?
Мой кусок кода выглядит так:
M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC,5.0)
matchesMask = mask.ravel().tolist()
h,w = self.poster_original.shape
pts = np.float32([ [0,0],[w-1,h-1],[w-1,0],[0,h-1]]).reshape(-1,1,2)
dst = cv2.perspectiveTransform(pts,M)
self.undistorted_camera_image= cv2.polylines(self.undistorted_camera_image,[np.int32(dst)],True,255,3, cv2.LINE_AA)
РЕДАКТИРОВАТЬ: изменение порядка углов на:
pts = np.float32([ [0,0],[0,h-1],[w-1,h-1],[w-1,0] ]).reshape(-1,1,2)
Я получаю такие вещи, как:
Это выглядит немного иначе, но все же не то, что я ожидал.