Мне уже удалось нарисовать эпиполярную линию от изображения 1 к изображению 2. Теперь моя цель - нарисовать эпиполярную линию от изображения 2 к изображению 1 с использованием той же фундаментальной матрицы.
Итак, я 'Мы пытались использовать ту же логику, но эпиполярная линия не соответствует точке нажатия.
Эпиполярная линия от изображения 1 до изображения 2: работает
Point m1(x, y);
Data* D = (Data*)p;
circle(D->I1, m1, 2, Scalar(0, 255, 0), 2);
imshow("I1", D->I1);
Vec3d m1p(m1.x, m1.y, 1);
// Epipolar line equation
Vec3d l = D->F*m1p;
// 1 - compute two points on the epipolar line and draw it
Point m2a(0,-l(2)/l(1)),m2b(D->I2.width(),-(l(0)*D->I2.width()+l(2))/l(1));
line(D->I2,m2a,m2b,Scalar(0,255,0),1);
imshow("I2", D->I2);
Эпиполярная линия от изображения 2 к изображению 1: не работает
Point m2(x, y);
Data* D = (Data*)p;
circle(D->I2, m2, 2, Scalar(0, 255, 0), 2);
imshow("I2", D->I2);
Vec3d m2p(m2.x, m2.y, 1);
// Epipolar line equation
Vec3d l = D->F*m1p;
// 1 - compute two points on the epipolar line and draw it
Point m2a(0,-l(2)/l(1)),m2b(D->I2.width(),-(l(0)*D->I2.width()+l(2))/l(1));
line(D->I1,m2a,m2b,Scalar(0,255,0),1);
imshow("I1", D->I1);
Вот как выглядит вывод
Что такоеЯ неправильно понял?