Матрица камеры из основной матрицы

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

определить поворот камеры и матрицу перевода из основной матрицы

Вращение и перевод из основной матрицы неверны

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

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

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

1 ответ

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

В Википедии также есть хороший раздел, объясняющий это.

Другие вопросы по тегам