2012-05-27 25 views
5

puedo obtener la longitud focal usando los parámetros de la cámara en Android como esto:Obtener cámara distancia focal OpenCV Android

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

Me da 3,97 (correcto). Desde que uso OpenCV para mi proyecto, quiero usar la variable ya proporcionada, que es:

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

pero me da un resultado de 8005. Soy nuevo en OpenCV, así que si alguien me podría dar una insinuación, realmente lo apreciaría.

+1

Creo que tiene algo que ver con las unidades. y Google rápido en él sugiere que openCV funciona en coordenadas mundiales, por lo que el 8005 es una distancia en términos de píxeles. Para encubrir de uno a otro joven necesidad de averiguar la tasa de conversión, creo que hay una función de calibración para esto. – will

+0

+1 ¡Gracias! Luego veré primero la calibración de la cámara. Actualizará la publicación más tarde. – springrolls

+0

@will: Acabo de calibrar la cámara como se muestra en este enlace, http://se.cs.ait.ac.th/cvwiki/opencv:tutorial:camera_calibration, y obtuve valores diferentes en comparación con el que usa Highgui. fx = 3.81674438e + 003 y fy = 3.90492334e + 003 (en coordenadas de píxeles, supongo). ¿Porqué es eso? Discúlpeme por mi ignorancia. – springrolls

Respuesta

1

La que utiliza de Highgui es Constante. Es lo mismo cualquiera que sea la cámara. Creo que debes apegarte al parámetro de la cámara Android

+1

¡Ah, gracias! Mi cerebro estaba de vacaciones, me toma dos días entender tu respuesta. lol. – springrolls

Cuestiones relacionadas