5

stosuję macierzach projekcyjne P1 i P2 (na przykład za pomocą dinosaur dataset mi) i trzeba obliczyć podstawową matrycę F. więc wykorzystanie dwóch funkcji Matlab:różne podstawową matrycę z tej samej macierzy projekcji

  • Funkcja Petera Kovesi: www.csse.uwa.edu.au/~pk/Research/MatlabFns/Projective/fundfromcameras.m
  • Zisserman: www.robots.ox.ac.uk/~vgg/hzbook/code/ vgg_multiview/vgg_F_from_P.m

Te funkcje powinny zrobić sam Rzecz, ale Mam inną wartość F! Jak to możliwe? Jakie są właściwe funkcje?

Jeśli dwa punkty X1 i X2 są "takie same" na dwóch różnych obrazach, X2^T * F * X1 = 0 ... Tak więc znalazłem dwa odpowiadające punkty z dwóch obróconych obrazów (5 stopni) przy użyciu SURF , ale X2^T * F * X1 nigdy nie jest równe zeru z tymi dwoma funtcionami. Jakieś pomysły?

Zamiast tego, jeśli mogę użyć tej funkcji, która oblicza F od dopasowania punktów:

mam, że X2^T * F * X1 = 0 ... Oczywiście F różni się od dwóch FI z dwiema innymi funkcjami ...

+0

Jestem pewien, że funkcja Petera Kovesi ma rację, działa poprawnie! –

Odpowiedz

2

Po pierwsze, jest niezmiernie prawdopodobne, że punkty nie są idealnie odwrócone. SURF używa wielu przybliżeń, dwu-liniowej interpolacji i całego mnóstwa rzeczy, które łamią prawdziwą niezmienność obrotową. Tak więc może nie istnieć taka podstawowa matryca (jeśli nie ma liniowej zależności między dwoma zestawami punktów.) Tak, to prawda nawet po dopasowaniu punktowym.

To powiedziawszy, twój X2^T*F*X1 powinien być prawdopodobnie mały, jeśli dopasowanie jest naprawdę dobre, ale byłbym zaskoczony, gdyby kiedykolwiek było dokładnie zero dla prawdziwego obrazu.

2

Podstawowa macierz jest jedyna w swoim rodzaju: do skali.

Tak więc, nawet jeśli macie różne macierze podstawowe, oba mogą być poprawne dla obrazów.

Powiązane problemy