читать это: http://www.cs.auckland.ac.nz/courses/compsci773s1c/lectures/773-GG/lectA-773.htm
это объясняет 3D-реконструкцию с использованием двух камер. Теперь для простого резюме, посмотрите на рисунок с этого сайта:
Вы знаете только pr / pl, изображение указывает. Проводя линию от их соответствующих фокальных точек Or / Ol, вы получаете две линии (Pr / Pl), которые обе содержат точку P. Поскольку вы знаете происхождение и ориентацию двух камер, вы можете построить трехмерные уравнения для этих линий. Таким образом, их пересечение - это 3-я точка, вуаля, это так просто.
Но когда вы сбрасываете одну камеру (скажем, левую), вы точно знаете только строку Pr. Чего не хватает, так это глубины. К счастью, вы знаете радиус своего шара, эта дополнительная информация может дать вам недостающую информацию о глубине. см. следующий рисунок (не обращайте внимания на мои навыки рисования):
Теперь вы знаете глубину, используя теорему о перехвате
Я вижу еще одну проблему: форма шара изменяется при проецировании под углом (то есть не перпендикулярно плоскости захвата). Однако вы знаете угол, так что компенсация возможна, но я оставлю это на ваше усмотрение: p
edit: комментарий @ripkars (поле для комментариев было слишком маленьким)
1) ок
2) ага, проблема соответствия: D Обычно решается с помощью корреляционного анализа или сопоставления признаков (в основном сопоставление с последующим отслеживанием в видео). (существуют и другие методы)
Я не пользовался набором инструментов для работы с изображениями / видением, но определенно должны быть некоторые вещи, которые помогут вам в пути.
3) = калибровка ваших камер. Обычно вы должны делать это только один раз, при установке камер (и каждый раз, когда вы меняете их относительное положение)
4) да, просто примените уравнение Лонге-Хиггинса, то есть: решите
P = C1 + mu1*R1*K1^(-1)*p1
P = C2 + mu2*R2*K2^(-1)*p2
с
P = 3D точка для поиска
C = центр камеры (вектор)
R = матрица вращения, выражающая ориентацию первой камеры в мире кадра.
K = калибровочная матрица камеры (содержащая внутренние параметры камеры, не путать с внешними параметрами, содержащимися в R и C)
p1 и p2 = точки изображения
mu = параметр, выражающий положение P на линии проекции от центра камеры C к P (если я прав, R * K ^ -1 * p выражает линейное уравнение / вектор, указывающий от C к P)
это 6 уравнений, содержащих 5 неизвестных: mu1, mu2 и P
edit: комментарий @ripkars (поле комментария снова слишком маленькое)
Единственная компьютерная библиотека визуалов, которая появляется у меня в голове, - это OpenCV (http://opencv.willowgarage.com/wiki). Но это библиотека C, а не Matlab ... Я думаю, Google - твой друг;)
О калибровке: да, если эти два изображения содержат достаточно информации для соответствия некоторым функциям. Если вы измените относительное положение камер, вам, конечно, придется откалибровать.
Выбор кадра мира является произвольным; это становится важным только тогда, когда вы хотите проанализировать полученные 3D-данные впоследствии: например, вы можете выровнять одну из мировых плоскостей с плоскостью движения -> упрощенное уравнение движения, если вы хотите подобрать одну.
Этот мир кадр только опорный кадр, изменчива с «изменением трансформации системы отсчета» (перевод и / или преобразования вращения)