Ich erstellte eine einfache Testanwendung, um eine Translation durchzuführen (T) und eine Rotation (R) Schätzung von der essentiellen Matrix.T- und R-Schätzung von essentieller Matrix
- generieren 50 zufällig Punkte.
- Berechnen Sie die Projektion pointSet1. Verwandeln
- Punkte über Matrix (R | T).
- Berechnen Sie die neue Projektion pointSet2.
- Berechnen Sie dann die Grundmatrix F.
- Extrahieren Sie wichtige Matrix wie
E = K2^T F K1
(K1, K2
10 - interne Kameramatrizen). - Verwenden Sie SVD, um
UDV^T
zu erhalten.
Und berechnen restoredR1 = UWV^T
, restoredR2 = UW^T
. Und sehen Sie, dass einer von ihnen gleich R ist.
Aber wenn ich Übersetzungsvektor berechnen, restoredT = UZU^T
, bekomme ich normalisiert T.
restoredT*max(T.x, T.y, T.z) = T
Wie korrekte Übersetzung Vektor wiederherzustellen?
Das klingt nach der von Bae et al. in * Computational Re-Photography * (2010) habe ich gegoogelt und keinen anderen Ansatz gefunden. – oarfish