Я создаю приложение, в котором я найду перспективу изображения с высоты птичьего полета, умножив его на матрицу гомографии. Я много читал об этом, и кажется, что функция умножения матриц — это warpPerspective(). Хотя, когда я это делаю, результирующее изображение представляет собой изображение, в котором все пиксели равны нулю, а только первая строка - нет.
Пожалуйста, дайте мне способ умножить матрицу гомографии на изображение, будь то C ++ или Python.
Вот код, который я использую:
import cv2
import numpy as np
tilt = np.pi * 35 / 180
a = np.zeros((3, 3))
a[0][0] = 1
a[1][1] = np.sin(tilt)
a[1][2] = -np.sin(tilt)
a[2][2] = np.cos(tilt)
a[2][2] = np.cos(tilt)
src = cv2.imread("S2.jpg")
width, height, depth = src.shape
output = cv2.warpPerspective(src, a, (width, height))
cv2.imwrite("results.png", output)
Изображение, к которому я применяю гомографию:
Результат использования warpPerspective:
Видно, что в левом верхнем углу результирующего изображения есть небольшая часть.
Ваша помощь очень ценится!!
C matrix in the paper
) и дайте некоторое приближение дляh
и 2 углов и снова проверьте матрицу бумаги (и дайте полную матрицу вашему коду, а не только ее часть, как вы сделали). Если вы можете использовать Matlab, попробуйте сначала там. - person Micka   schedule 02.01.2015