Я смог преобразовать/деформировать изображения с помощью гомографической матрицы, используя функцию cv2.warpPerspective. Однако, когда я не использую openCV и хочу использовать что-то более низкое - в настоящее время я использую OpenGL для рисования графики, и я хочу применить известную матрицу гомографии к конкретным вершинам, я не могу применить матрицу гомографии как такие как:OpenCV: что делает cv2.warpPerspective?/пытается понять гомологию
Для точки (x, y), я делаю это (x, y, 1). Тогда с моей гомографической матрицей H умножим H * (x, y, 1). H является матрицей 3x3 и (x, y, 1) равна 3x1, поэтому я получаю новую (x ', y', z '), которая равна 3x1. Но этот вопрос не кажется правильным?
Я смог получить правильное преобразованное новое значение, используя метод здесь: https://math.stackexchange.com/questions/296794/finding-the-transform-matrix-from-4-projected-points-with-javascript, но я действительно хочу знать, почему это не работает!
См. [ЭТОТ POST] (http://www.pyimagesearch.com/2014/05/05/building-pokedex-python-opencv-perspective-warping-step-5-6/) для получения дополнительной информации и связанных с ней ссылок –
@JeruLuke Я видел это, и я могу использовать cv2.warpperspective правильно, без проблем. Моя проблема в том, почему я не могу просто умножить матрицу на точки напрямую? – korp
, чтобы сделать это, вы можете использовать функцию cv2.findHomography(). Получите точки из ** исходного ** изображения, которое вы хотите сопоставить с точкой в изображении ** назначения **. –