1

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

determine camera rotation and translation matrix from essential matrix

Rotation and Translation from Essential Matrix incorrect

В этих ответах, они предлагают мне использовать newE где [U,S,V] = svd(E) и newE = U*diag(1,1,0)*Vt. Я не понимаю, почему мне нужно использовать newE. Как я знаю, уникальные значения уникальны. Поэтому изменение особых значений до diag(1,1,0), по-видимому, делает E совершенно разными значениями.

Я также читал «Многомерную геометрию зрения в компьютерном зрении», но он просто относится к идеальному случаю, то есть к сингулярным значениям относятся (1,1,0). Я не нашел причины использовать newE.

Пожалуйста, объясните мне, почему люди используют newE?

ответ

0

Если я правильно понимаю ваш вопрос, то, так как вы исходные данные (и, таким образом, E), как правило, шумные данные в реальном мире, а затем с помощью diag(1,1,0) вы сдерживающие матрицу, чтобы быть в правильном масштабе и ранга и алгебраически обеспечение выполнения геометрической ограничения.

Wikipedia также has a nice section, объясняя это.

+0

Спасибо за ваш ответ. Таким образом, ограничения могут быть удовлетворены, но результат кажется неправильным. Является ли результат довольно надежным? – Bahamut