Capturar un video de una imagen de proyector

3

Para un proyecto de escaneo 3D necesito capturar un video / instantáneas de un objeto y una imagen del proyector que se proyecta en el objeto. El proyector funciona (solo) con una frecuencia de cuadros de 60 Hz, la cámara admite velocidades en {3.75,7.5,15,30,60} Hz. Tengo que trabajar en Matlab, y como es una cámara IEEE 1394, solo puedo usar el controlador de cámara CMU 1394 ya que otros controladores no son compatibles con matlab.

Ahora, mi problema es que las velocidades de fotogramas de la cámara (controlador) parecen tener un pequeño desfase de fase que no es cero que se acumula con el tiempo, de modo que la imagen capturada se oscurece cada vez más hasta que alcanza un mínimo Más brillante y más brillante de nuevo y así sucesivamente. Esto es molesto. Hay aplicaciones de ejemplo para escáneres 3D que pueden trabajar con diferentes controladores. Allí, el problema no existe, así que estoy bastante seguro de que es culpa del conductor.

Afortunadamente, el controlador es de código abierto, por lo que poner un poco de compensación en algún lugar y tratar de resolver el problema probando diferentes tiempos podría funcionar. Hay, sin embargo, una idea adicional que tuve: la cámara admite el disparo. ¿Hay alguna manera en que pueda activarlo usando la salida del proyector? Si eso funcionara, sería mucho más fácil y más elegante que jugar con ese controlador. El proyector utiliza VGA. ¿Conoce alguna posibilidad de capturar la señal y usarla como disparador? Si es posible sin mucho hardware adicional.

    
pregunta janoliver

2 respuestas

4

(1) Menciona 60 Hz tanto para cuadros y velocidades de captura , por lo que lo siguiente no debería ser un problema, y es bastante obvio, pero lo menciono "por si acaso", ya que tales cosas pueden hacerte tropezar

Habría esperado que si la captura de cuadros durara exactamente "un cuadro", la variación de brillo no sería un problema importante. Si el tiempo de captura es inferior al tiempo de fotograma, la ubicación de la ventana de captura afecta el resultado. Si el tiempo de captura es > En el tiempo de fotograma se obtiene una imagen completa y luego parte de otra. Ambas disposiciones pueden (afectarán) a la calidad de la imagen.

(2) Señal de sincronización de trama:

La sincronización de la cámara con la señal VGA debería ser fácil.

El conjunto de señales VGA incluye una señal Vsync (Sincronización vertical) que permite detectar el inicio del marco.

Esto está en el pin 14 en un conector de video para PC (DB15) y en el pin 12 en un conector de video Macintosh.

Eldiagramaanterioresde Sitio web personal de Javier Valcarce - Formato de señal de video VGA y sincronización

Para agregar a la diversión, la polaridad de la señal de sincronización varía con la resolución, pero es probable que no te preocupes una vez que descubras cuál de las dos posibilidades se aplica en tu caso.

Suponiendo que puede sincronizar la cámara activando esta señal ( parece probablemente sea lo suficientemente simple). En el peor de los casos, es posible que deba agregar un retraso fijo para mover la fase de la imagen a la ubicación correcta para su operación.

sincronización VGA:

Lapolaridadseinvierteparaalgunasresoluciones.

Desde generación de señal de video VGA

    
respondido por el Russell McMahon
1

Si desea intentar activarlo, VGA tiene su sincronización horizontal en el pin 13, referenciada formalmente a la tierra de sincronización en el pin 10. (Como señala Russel en los comentarios, VSYNC en 14 es lo que debe usarse)

Hay una pequeña posibilidad de que necesite algunos medios para proporcionar un retardo de fase para disparar la cámara en el momento relativo correcto, aunque podría hacer algo ajustando el ancho del pulso de sincronización a un extremo en el video. Configuraciones de bajo nivel según lo que pueda tolerar el monitor (proyector). Un circuito externo simple (¿un 555 y una olla?) Sería crudo pero probablemente viable.

Si es viable una solución de software puro que pueda parecer más limpia, pero no sé si es compatible. 60Hz es fácil en el ámbito del control de software (la fluctuación de fase es siempre una preocupación en las configuraciones no duras en tiempo real, especialmente con los buses IO empaquetados), pero puede mantenerse dentro de su tolerancia. Esto requeriría que haya un mecanismo de activación de software en el controlador que pueda explotar.

Finalmente, no necesariamente diría que matlab le restringe el uso de un controlador de cámara en particular y, por lo tanto, una variedad de cámaras, ya que parece que matlab tiene una interfaz funcional para bibliotecas de usuario escritas en otros idiomas como C, y desde allí debería es posible obtener datos de casi cualquier cosa que pueda encontrar documentación sobre cómo comunicarse directamente o mediante una interfaz de controlador de sistema operativo existente no compatible con matlab.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas