unistortrectify img, чтобы найти соответствующие функции, соответствующие триангуляции - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть стерео настройка, которая была откалибрована и исправлена ​​с помощью stereoCalibrate и stereoRectify.я продолжил использовать переназначенное изображение из initUndistortRectifyMap, чтобы найти соответствующее соответствие функции, используя детектор и дескриптор.Я сделал это, чтобы найти соответствующее совпадение между левым и правым изображением, обнаружив только по одной оси y для каждой точки левого изображения для настройки горизонтального стерео, что должно сократить время поиска.

однако я знаю, что вдоль строки поиска будет некоторая эпиполярная ошибка, и, следовательно, расширил поиск, создав маску для одного пикселя вверх и вниз по горизонтальной линии.Однако я не получаю хорошие поиски все время.Я использую ORB.Эпиполярная ошибка = 0,53.Каков наилучший способ сопоставления?

cv::Mat mask = cv::Mat::zeros(img_r_0.size(),CV_8U);
cv::Mat roi(mask,cv::Rect(0,points_l_0[i].y-1.0,img_r_0.cols,3 ));
roi = cv::Scalar(255);
orb_detector->detectAndCompute(img_r_0,mask,temp_keypoints_r_0,descriptors_r_0);

enter image description here Мне также интересно, лучше ли найти соответствующие совпадения на искаженном изображении и впоследствии не искажать точки перед триангуляцией.Моя конечная цель - получить триангуляцию хороших характерных точек путем определения характерных точек на левом изображении.Я не хочу использовать карту глубины.

Моя большая цель - сделать стереометрию без карты глубины.Я пытаюсь избежать совпадения левого и правого элементов, так как его сложно сопоставить в разных кадрах в зависимости от движения.Я новичок, поэтому, если у вас есть лучшее решение, не стесняйтесь помочь

...