2012-05-28 9 views
7

Jestem nowym użytkownikiem OpenCV. Mam działającą próbkę Surf Detection. Teraz chcę umieścić model 3D na wykrytym obrazie.Jak znaleźć trójwymiarową macierz projekcyjną w wykrywaniu surfingu

Jak mogę znaleźć matrycę 3D Projekcyjna?

+1

Możliwe rozwiązanie: http://urbanar.blogspot.in/2011/04/from-homography-to-opengl-modelview.html –

+2

Problemem jest zbyt złożony na to proste pytanie. Masz na myśli Homografię. Musisz przekazać kluczowe punkty wykryte surfowaniem do funkcji cvFindHomography –

Odpowiedz

5

Domyślam się, że mówimy o Rzeczywistości Rozszerzenia, ponieważ mówisz, że chcesz umieścić model 3D na wykrytym obrazie (w ramce kamery?). Kluczem do problemu jest zawsze wykrycie co najmniej 4 punktów, które pasują do innych 4 "kluczowych" w naszym znaczniku. Następnie, rozwiązując niektóre równania, otrzymamy naszą homografię, która pozwoli nam rzutować dowolny punkt.

W OpenCV jest funkcją, która wykonuje to zadanie: cvFindHomography

wystarczy par meczów, wybierz metodę (RANSAC, to znaczy), a otrzymasz Homography.

Następnie można rzutować punkty jak wyjaśniono here:

+1

Użyłem cvFindHomography do wyświetlenia kwadratu testowego na obrazie, a następnie nazwano solvePnP, aby obliczyć macierz widoku modelu. –