2012-05-27 9 views
5

mogę uzyskać ogniskową przy użyciu parametrów aparatu w Androidzie tak:Get długość ogniskowej aparatu OpenCV Android

Camera.Parameters parameters = camera.getParameters(); 
Log.d(TAG, "Focal length:"+parameters.getFocalLength()); 

Daje mi 3,97 (poprawne). Ponieważ używam OpenCV dla mojego projektu, chcę użyć zmiennej już zapewnione, który jest:

Log.d(TAG, "Focal length:"+Highgui.CV_CAP_PROP_ANDROID_FOCAL_LENGTH); 

Ale to daje mi wynik 8005. Jestem nowym OpenCV, więc jeśli ktoś może mi dać podpowiedź, naprawdę bym to docenił.

+1

Uważam, że ma to coś wspólnego z jednostkami. i szybkie Google na nim sugeruje, że openCV działa we współrzędnych światowych, więc 8005 jest odległością pod względem pikseli. Aby ukryć się od jednego do drugiego, młodzi muszą obliczyć współczynnik konwersji, myślę, że jest w tym funkcja kalibracji. – will

+0

+1 Dzięki! Potem najpierw zajrzę do kalibracji kamery. Zaktualizuje post później. – springrolls

+0

@will: Właśnie skalibrowałem kamerę tak, jak pokazano w tym łączu, http://se.cs.ait.ac.th/cvwiki/opencv:tutorial:camera_calibration, i uzyskałem inne wartości w porównaniu do tego, używając Highgui. fx = 3,81674438e + 003 i fy = 3,90492334e + 003 (według współrzędnych piksli). Dlaczego? Przepraszam za moją ignorancję. – springrolls

Odpowiedz

1

Ten, którego używasz od Highgui jest stały. To jest to samo, co kamera. Myślę, że trzymasz się parametrów aparatu z kamery internetowej:

+1

Ah, dzięki! Mój mózg był na wakacjach, zrozumienie twojej odpowiedzi zajmuje mi dwa dni. lol. – springrolls

Powiązane problemy