2012-05-27 10 views
5

posso ottenere la lunghezza focale utilizzando i parametri della telecamera in Android come questo:Get fotocamera lunghezza focale OpenCV Android

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

Mi dà 3.97 (corretto). Da quando uso OpenCV per il mio progetto, io voglio usare la variabile già prevista, che è:

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

ma mi dà un risultato di 8005. Sono nuovo di OpenCV, quindi se qualcuno mi potrebbe dare un suggerimento, lo apprezzerei davvero.

+1

Credo che abbia qualcosa a che fare con le unità. e Google veloce su di esso suggerisce che openCV funziona in coordinate del mondo, quindi l'8005 è una distanza in termini di pixel. Per coprire l'uno con l'altro i giovani hanno bisogno di capire il tasso di conversione, penso che ci sia una funzione di calibrazione per questo. – will

+0

+1 Grazie! Quindi esaminerò prima la calibrazione della videocamera. Aggiornerà il post più tardi. – springrolls

+0

@will: ho appena calibrato la fotocamera come mostrato in questo link, http://se.cs.ait.ac.th/cvwiki/opencv:tutorial:camera_calibration, e ho ottenuto valori diversi rispetto a quello che usa Highgui. fx = 3.81674438e + 003 e fy = 3.90492334e + 003 (in coordinate di pixel, suppongo). Perché? Scusami per la mia ignoranza. – springrolls

risposta

1

Quello che usi da Highgui è Constant. È lo stesso indipendentemente dalla fotocamera. Penso che tu rispetti il ​​parametro della videocamera Android

+1

Ah, grazie! Il mio cervello era fuori per una vacanza, mi ci vogliono due giorni per capire la tua risposta. lol. – springrolls

Problemi correlati