[Opencv] Przejście z położenia pkt. na zdjęciu do współrzędnych świata realnego

Odpowiedz Nowy wątek
2019-03-24 12:27
0

cześć, mam problem. Otóż zaznaczam pkt. na zdjęciu, dostaje jego koordynaty w uk. współrzędnych zdjęcia(2d) teraz chcę przejść na współrzędne świata realnego(3d ale zakładam Z = 0)
Kalibruję kamerę za pomocą programiku z przykładów opencv :
https://github.com/opencv/ope[...]ration/camera_calibration.cpp
Kalibruje na tablicy z szachów(18 zdjęć tablicy)
Teraz dzięki calibrateCamera mam matryce rotacji,kamery i translacji a błąd program podaje mi 0.23 .testowo w Gnu Octave najpierw sobie sprawdzam zgodnie z wzorem który jest w ostatnim poście https://stackoverflow.com/que[...]te-to-world-coordinate-opencv

R = rotationVectorToMatrix(R)' # To jest nie potrzebne ze względu na to że calibrateCamera zwraca już takową macierz
H=K*[R T];`
Q=inv([H(:,1) H(:,2) -[px;py;1]])*-H(:,4);
W=Q(1:2)

Teraz octave podaje mi wynik jako
155.226
-70.492

Ok czyli rozumiem lewy górny róg zdjęcia to początek uk. współrzędnych. Jako że zrobiłem zdjęcie suwmiarki i wybrałem pkt. na zdjęciu odpowiadający 41 mm(w takich jednostkach kalibrowałem kamerę) to wynik -70,4 mm jest bez sensu(tzn. - może być bo oś Y szła by w dół tutaj) ok. 30 mm różnicy przy średnim błędzie(RMS)0.23 ?

Co robię źle?


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
edytowany 1x, ostatnio: revcorey, 2019-03-24 12:28
To jakiś żart? Pytasz sam Siebie, co Zrobiłeś:) Sformułuj problem, Daj kod i właściwe tagi, to pogadamy:) - lion137 2019-03-24 12:55
A zdajesz sobie sprawę że patrzysz na kod? Masz tu podany M-code który i tak jest mało ważny bo chodzi o idee. Pytam kogoś kto miał doświadczenie z tym czyli przechodzeniem w OpenCv z image do world cor. Teraz małe info dla ciebie.. Po pierwsze opisałem jak obliczyłem matryce po drugie masz m-code tutaj podany! Podałem też jaki jest błąd RMS. Ludzie którzy to już robili będą mi w stanie powiedzieć czy czegoś nie ominąłem i jak duże błędu w mm mogę się spodziewać. Jeśli tego nie robiłeś trudno. Nie masz tagów c++ czy coś bo tu chodzi o przetwarzanie obrazu. - revcorey 2019-03-24 13:58
Ok, sorry, nie byłem wystarczająco skupiony; mogę usunąć komentarz. - lion137 2019-03-24 23:05

Pozostało 580 znaków

2019-03-24 14:38
Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0