Obtener el ángulo de visión del dispositivo de la cámara Android
Quiero saber el ángulo de visión de la cámara, al igual que en esta pregunta, pero utilizando android.hardware.camera2. ¿Cómo puedo reproducir el siguiente código con la nueva cámara2?
Camera.Parameters p = camera.getParameters(); double thetaV = Math.toRadians(p.getVerticalViewAngle()); double thetaH = Math.toRadians(p.getHorizontalViewAngle());
¿Hay una manera de hacer lo mismo?
- La calidad de vista previa de la cámara en Android es mala
- ¿Puedo usar lockCanvas () en onPreviewFrame callback?
- Cómo tomar una foto (instantánea) mientras el video se ha grabado con la vista de la superficie
- Android: reemplaza la vista previa de la cámara con la imagen
- ¿Cómo mostrar el enfoque automático cuando la cámara de vista previa?
- Android: Necesito una vista previa circular de la cámara. ¿Cómo lograrlo?
- En Android, ¿es posible cambiar la cámara (de adelante hacia atrás) y seguir grabando?
- Establecer el enfoque de la cámara a una distancia fija controlada en Android
- Utilizar cámara USB en la aplicación de Android
- Camera.open () que bloquea el hilo de la interfaz de usuario
- detección de cámara android
- Orientación de la cámara en Android
- Android: ¿Cómo retrasar la captura de un marco específico tomado por la cámara?
En cuanto a mi investigación se ha ido la respuesta es no. Con la camera2
API no hay llamada que puede darle el ángulo de visión vertical y horizontal.
Sin embargo, no necesita usar la API de la camera2
para obtener esos valores. Puede utilizar la API original de la camera
para obtener el ángulo de visión vertical y horizontal y, a continuación, utilizar la API de la camera2
para el resto de la aplicación.
Por lo que sé el firmware de captura de imagen real no ha cambiado entre la cámara y la cámara camera2
API.
Podrías hacerlo matemáticamente.
Tienes:
-
L
, la anchura de un objeto -
d
, la distancia al objeto
Desea calcular el ángulo a
(alfa), el campo de visión.
Haciendo un poco de trigonometría:
tan(a/2) = (L/2)/d tan(a/2) = L/2d a/2 = atan(L/2d) a = 2*atan(L/2d)
Puede hacer eso para calcular el campo de visión horizontal. ¡Buena suerte!
Busco en el google una posibilidad de mostrar persona que calcula FOV por Camera2 api
https://photo.stackexchange.com/questions/54054/calculating-the-field-of-view-for-a-nexus-5
Y encontró la ecuación
http://www.bobatkins.com/photography/technical/field_of_view.html
FOV (rectilíneo) = 2 * arctan (tamaño del cuadro / (longitud focal * 2))
Por lo tanto, necesitamos conocer el tamaño del marco y la distancia focal
El tamaño del marco es el tamaño de la cámara se puede encontrar el código debajo de enlace
https://stackoverflow.com/a/30403558
También, distancia focal que puedes encontrar debajo del enlace
Enfoque manual en cámara2, android
Y combinar el código como este
Una función calculateFOV () calcula el ángulo FOV
- Compilar el proyecto de Android en el sistema de integración continua Hudson?
- Cómo abrir la ventana de permisos de la aplicación en la configuración de la aplicación mediante programación