Я пытаюсь извлечь матрицу гомографии между двумя изображениями. Оригинальное плоское изображение и другое изображение, которое содержит первый. Я следую инструкциям в этом уроке https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_feature_homography/py_feature_homography.html#feature-homography.Opencv: Хорошие совпадения, но неправильная гомография
Найденные совпадения выглядят великолепно, но при рисовании окна, содержащей изображение, оно выглядит неправильно, потому что оно не содержит изображения ... но одна из границ в порядке ... Так что происходит? Является ли матрица гомологии неправильной или это просто проблема визуализации?
Мой кусок кода выглядит следующим образом:
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)
EDIT: Изменение порядка углов, чтобы:
pts = np.float32([ [0,0],[0,h-1],[w-1,h-1],[w-1,0] ]).reshape(-1,1,2)
Я получаю такие вещи, как:
Это выглядит немного по-другому, но все еще не то, что я ожидал.
Что вы имеете в виду «это неправильно»? –
Я ожидаю рамки вокруг изображения ... –
Не знаете, на какой ограничительной рамке вы ссылаетесь. –