Estoy tratando de escribir un programa usando OpenCV para calcular la distancia desde una cámara web a una esfera blanca de una pulgada. Siento que esto debería ser bastante fácil, pero por alguna razón me estoy quedando en blanco. Gracias por la ayuda antes de tiempo.distancia Hallazgo de la cámara al objeto de tamaño conocido
Respuesta
Usted puede utilizar semejanza de triángulos para calibrar el ángulo de la cámara y encontrar la distancia.
Usted sabe el tamaño de la bola: D
unidades (por ejemplo cm). Colóquelo a una distancia conocida de Z
, digamos 1 metro = 100 cm, frente a la cámara y mida su ancho aparente en píxeles. Llame a este ancho d
.
La longitud focal de la cámara f
(que es ligeramente diferente de una cámara a) es entonces f=d*Z/D
.
Cuando vea esta bola de nuevo con esta cámara, y su anchura es evidente d'
píxeles, a continuación, por semejanza de triángulos, ustedes saben que f/d'=Z'/D
y por lo tanto: Z'=D*f/d'
donde Z'
es la distancia actual del balón desde la cámara.
¿No es el problema la longitud focal de una cámara? La calibración de la cámara de su teléfono inteligente no le proporciona la distancia focal en términos de metros, sino en términos de píxeles en los ejes x-y. Se han multiplicado por un factor de escala. –
El primer párrafo explica cómo obtener la distancia focal en píxeles. La similitud del triángulo básicamente encuentra el factor de escala de conversión de píxeles a metros. –
Veo lo que dices. Aún así, ¿no se trata simplemente de mantener una base de datos de tamaños y calibraciones del sensor de imagen con la misma cantidad de problemas? –
En mi opinión, necesitará un modelo de cámara = un modelo de calibración si desea medir la distancia u otras cosas (en el mundo real). El modelo de cámara estenopeica es simple, lineal y ofrece buenos resultados (pero no corregirá las distorsiones, ya sean radiales o tangenciales)
Si no lo usa, podrá calcular mapa de profundidad-disparidad (por ejemplo, si usa visión estéreo) pero es relativo y no le proporciona una medición absoluta, solo lo que está detrás y lo que está delante de otro objeto ...
Por lo tanto, Creo que la respuesta es: necesitarás calibrarlo de alguna manera, tal vez podrías pedirle al usuario que se acerque a la esfera hacia la cámara hasta que todo el plano de la imagen esté perfectamente lleno de la bola, y con una medida de bola conocida anteriormente, Podrá calcular la distancia ...
Julien,
- 1. enfoque de la cámara se distancia
- 2. Medición de distancia con la cámara del iPhone
- 3. ¿Cómo obtener el tamaño de la vida real de un objeto a partir de una imagen, cuando no se conoce la distancia entre el objeto y la cámara?
- 4. Cálculo de distancia usando una sola cámara
- 5. hallazgo clave de objeto en underscore.js
- 6. Obtener cámara distancia focal OpenCV Android
- 7. recreando el objeto de la cámara después del error 100 (el servidor de la cámara murió)
- 8. Orientación de un objeto conocido en una imagen
- 9. Cambio de tamaño de la vista previa de la cámara
- 10. hallazgo elemento de la matriz
- 11. Problema al voltear la cámara
- 12. Configuración del tamaño de imagen de la cámara en Android
- 13. Calcular distancia de 100 metros cuando la latitud y longitud es un punto conocido
- 14. Detección de objeto de cámara en JavaScript
- 15. de bash directorios hallazgo
- 16. ¿Devuelve una matriz de un tamaño conocido en C++?
- 17. Medida de distancia entre dos conjuntos de tamaño posiblemente diferente
- 18. hallazgo en la página HTML
- 19. hallazgo cuartiles
- 20. C#, cámara web Emgu: elija el tamaño de captura
- 21. Android reducir el tamaño de imagen de cámara
- 22. centro Hallazgo de huellas dactilares
- 23. lotes extensión de archivo hallazgo
- 24. Paso de la cámara/Guiñada al vector de dirección
- 25. centro hallazgo de triángulo 2D
- 26. hallazgo se preguntó mediana de 5 elementos
- 27. Distancia al "punto de interés" en el enfoque automático de iphone
- 28. ¿Cómo acceder al flash de la cámara en UIImagePickerController?
- 29. java.lang.RuntimeException: no se pudo conectar al servicio de la cámara
- 30. Baja calidad de imagen/imagen al capturar desde la cámara
¿Has probado "calibrar" su sistema? Quiero decir que puedes medir el tamaño del píxel cuando la esfera está a 50 cm, 1 m, 2 m de la cámara web y luego comparar la medición en tiempo real con los datos de calibración. –
Esta es una buena idea, pero si estoy planeando crear una aplicación multiplataforma que se ejecutará en todo tipo de webcams diferentes, ¿cada cámara diferente necesitará su propia calibración? ¿O diferentes cámaras de la misma calidad (por ejemplo, vga, por ejemplo) ven la bola como el mismo número de píxeles en cada distancia? –
Desafortunadamente, necesitará una calibración para cada cámara, porque muy pocas tienen el mismo "ángulo de visión". Algunos son más gran angular (zoom) que otros, ver aquí, por ejemplo: http://www.tomshardware.com/reviews/webcam-quality-test-shootout,878-10.html. Entonces entiendo que esta no es la mejor solución. –