Как найти трехмерное положение точки с внутренними и внешними параметрами с помощью opencv
Я хочу найти позицию точки с OpenCV. я откалибровал две камеры, используя cvCalibrateCamera2. так что я знаю как внутренние, так и внешние параметры. Я читал, что с известными внутренними и внешними параметрами, я могу легко восстановить 3d с помощью триангуляции. Есть ли в opencv функция для достижения этой цели. Я думаю, что cvProjectPoint2 может быть полезен, но я не понимаю, что именно. Так, как я могу найти трехмерное положение точки.
Благодарю.
1 ответ
Сначала вы должны найти различия. В OpenCV реализовано два алгоритма - сопоставление блоков (cvFindStereoCorrespondenceBM
) и графические разрезы (cvFindStereoCorrespondenceGC
). Последний дает лучшие результаты, но медленнее. После обнаружения несоответствия вы можете перепроектировать несоответствия в 3D, используя cvReprojectImageTo3D
, Это дает вам расстояния для каждой точки входных изображений, которые находятся в обоих видах камеры.
Также обратите внимание, что алгоритмы стерео соответствия требуют пары выпрямленных изображений (используйте cvStereoRectify
, cvInitUndistortRectifyMap
а также cvRemap
).