У меня есть точка (xl, yl) на левом изображении в стереокамере. Я хочу определить, где эта же точка отображается на правильном изображении, скажем, точка (xr, yr) на правильном изображении. У меня есть все матрицы вращения и матрицы перевода, использующие калибровку камеры с использованием opencv.
Найдите соответствующую 2-ю точку на правом изображении в стереокамере.
comment
На какой глубине? Пиксель на одном изображении определяет трехмерный луч из своей камеры, который сопоставляется с линией на другом изображении (эпиполярная линия первого пикселя). Выбирая глубину (или оценивая ее с помощью одного из многих методов стереосопоставления), вы фиксируете точку на луче, следовательно, соответствующий пиксель на эпиполярной линии.
- person Francesco Callari   schedule 19.07.2013
comment
На самом деле, я пытался не делать карту несоответствий, используя cvstereocorrespondencebm, я думал, есть ли какая-то функция или какая-то матрица, которую мы умножаем, чтобы получить ту же соответствующую точку на правом изображении. Наконец, я хочу (x2 - x1), вывод несоответствия.
- person Aizen   schedule 19.07.2013
comment
Нет, такого не бывает — этого явно не может быть.
- person Francesco Callari   schedule 19.07.2013
comment
@Айзен, тебе удалось это понять? Я пытаюсь сделать то же самое без везения
- person Luke Zammit   schedule 06.04.2015
Ответы (1)
Вы можете сделать это с помощью простого 2D-сопоставления точек. У меня есть что-то вроде этого в OpenFrameworks:
cv::Ptr<cv::DescriptorExtractor> ext = cv::DescriptorExtractor::create("ORB");
cv::Mat descriptors_1, descriptors_2;
//The images are cv::Mat and the Points are std::vector<cv::KeyPoint>> which I got from cv::FASTX()
ext->compute(_leftImage, _leftPoints, descriptors_1);
ext->compute(_rightImage, _rightPoints, descriptors_2);
cv::BFMatcher matcher;
std::vector<cv::DMatches> matches;
matcher.match(descriptors_1, descriptors_2, matches);
Затем matches
содержит ссылки на подходящие пары точек на каждом изображении. Все еще потребуется некоторая очистка, чтобы избавиться от выбросов (все правильные совпадения должны быть параллельны друг другу ;)), но с некоторой работой вы сможете исправить два изображения друг к другу.
person
Gregor A. Lamche
schedule
14.04.2017