2012-05-27 11 views
5

kann ich Brennweite mit Hilfe der Kameraparameter in Android wie folgt erhalten:Get Kamerabrennweite OpenCV Android

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

Es gibt mir 3,97 (richtig). Da ich OpenCV für mein Projekt zu verwenden, möchte ich die Variable verwenden bereits zur Verfügung gestellt, das:

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

Aber es gibt mir ein Ergebnis von 8005. ich OpenCV neu bin, also wenn jemand mir eine geben könnte Tipp, ich würde es wirklich schätzen.

+1

Ich glaube es hat etwas mit den Geräten zu tun. und schnelles Google darauf schlägt vor, dass openCV in Weltkoordinaten arbeitet, also ist die 8005 eine Entfernung in Form von Pixeln. Um von einem zum anderen zu kommen, müssen junge Leute die Conversion-Rate herausfinden, ich denke, es gibt eine Kalibrierungsfunktion dafür. – will

+0

+1 Danke! Dann schaue ich zuerst in die Kamera-Kalibrierung. Wird den Beitrag später aktualisieren. – springrolls

+0

@will: Ich habe gerade die Kamera kalibriert, wie in diesem Link gezeigt, http://se.cs.ait.ac.th/cvwiki/opencv:tutorial:camera_calibration, und habe andere Werte verglichen mit der mit Highgui. fx = 3.81674438e + 003 und fy = 3.90492334e + 003 (in Pixelkoordinaten, vermute ich). Warum das? Entschuldige mich für meine Ignoranz. – springrolls

Antwort

1

Die von Ihnen verwendete Highgui ist Constant. Es ist das selbe was auch immer die Kamera ist. Ich denke du bleibst beim android Kamera Parameter

+1

Ah, danke! Mein Gehirn war auf Urlaub, ich brauche zwei Tage, um deine Antwort zu verstehen. lol. – springrolls