Я пытаюсь triangulate некоторые точки с OpenCV, и я нашел эту функцию cv::triangulatePoints()
. Проблема в том, что документации и примеров почти нет.
У меня есть некоторые сомнения по этому поводу.
-
Какой метод он использует? Я делаю небольшое исследование о триангуляции и существует несколько методов (линейный, линейный LS, собственный, итеративный LS, итеративный собственный,...), но я не могу найти, какой из них он использует в OpenCV.
-
Как его использовать? Кажется, что в качестве входных данных нужна матрица проекции и 3xN однородные 2D точки. Я определил их как
std::vector<cv::Point3d> pnts
, но в качестве вывода ему нужны массивы 4xN, и, очевидно, я не могу создатьstd::vector<cv::Point4d>
, потому что его не существует, поэтому как определить выходной вектор
Для второго вопроса, который я пробовал: cv::Mat pnts3D(4,N,CV_64F);
и cv::Mat pnts3d;
, ни один из них не работает (он выдает исключение).