как работает cv2.warpPerspective? - PullRequest
0 голосов
/ 13 июня 2019

Я сделал регистрацию изображений между двумя изображениями (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) неверен (несовпадение).Любые предложения здесь?

Спасибо!

1 Ответ

0 голосов
/ 13 июня 2019

Вот изображение, когда я накладываю преобразованное местоположение на зарегистрированное изображение.Предполагается, что каждая точка будет наложена на автомобиль.[ссылка]: https://drive.google.com/open?id=1_VCJ-9fAOq7WhW7a5RpznMC6R-aFpj-h

...