1

J'essaie d'extraire la matrice de la caméra de la matrice essentielle. J'ai trouvé quelques réponses à ce sujet.Matrice de la caméra à partir de la matrice essentielle

determine camera rotation and translation matrix from essential matrix

Rotation and Translation from Essential Matrix incorrect

Dans ces réponses, ils me suggèrent d'utiliser newE[U,S,V] = svd(E) et newE = U*diag(1,1,0)*Vt. Je ne comprends pas pourquoi j'ai besoin d'utiliser newE. Comme je le sais, les valeurs singulières sont uniques. Donc changer les valeurs singulières en diag(1,1,0) semble faire E à des valeurs complètement différentes. Je lis aussi la géométrie à vues multiples dans Vision par ordinateur, mais elle se réfère simplement au cas idéal, c'est-à-dire que les valeurs singulières sont (1,1,0). Je n'ai pas trouvé la raison d'utiliser newE.

S'il vous plaît quelqu'un peut-il m'expliquer pourquoi les gens utilisent newE?

Répondre

0

Si je comprends bien votre question, alors, puisque vous source de données (et donc E) est généralement données réelles bruyants, puis en utilisant diag(1,1,0) vous Contraindre la matrice à la bonne échelle et le rang et l'application algébriquement la géométrique contraintes.

Wikipédia également un has a nice section expliquant cela.

+0

Merci pour votre réponse. De cette manière, les contraintes peuvent être satisfaites, mais le résultat semble devenir incorrect. Le résultat est-il assez fiable? – Bahamut