Я откалибровал свою камеру и нашел внутренние параметры (K). Также я рассчитал Фундаментальную Матрицу (F).
Теперь E= K_T* F * K. Все идет нормально.
Теперь мы передаем основную матрицу (E) в SVD, чтобы использовать значения разложения (U, W, V) для извлечения вращения и перемещения:
essentialMatrix = K.Transpose().Mul(fund).Mul(K);
CvInvoke.cvSVD(essentialMatrix, wMatrix, uMatrix, vMatrix, Emgu.CV.CvEnum.SVD_TYPE.CV_SVD_DEFAULT);
** Вопрос) На данный момент было предложено два метода, и я запутался, какой из них действительно дает правильный ответ - специально для перевода:
В первом методе введите здесь описание ссылки автор предлагает вычислить R, T следующим образом:
Но во втором методе [http://isit.u-clermont1.fr/~ab/Classes/DIKU-3DCV2/Handouts/Lecture16.pdf] автор предоставляет другую формулу для T, которая равна +U , -U, как показано ниже:
Я реализую это на С# .Net, используя библиотеки openCv. Кто-нибудь знает, какая формула перевода правильная?