Structured light / Gray code¶
Técnica que proyecta patrones de luz codificados (típicamente binarios de Gray) sobre una escena y los captura con la cámara para establecer correspondencias píxel a píxel proyector↔cámara, permitiendo calibración procam y reconstrucción 3D.
Contexto¶
Es el mecanismo que da máxima precisión a la calibracion camara proyector y, además, permite escanear en 3D la superficie de trabajo y los objetos sobre ella (una vía alternativa/complementaria a medir con medicion por vision referencia escala).
Contenido¶
El proyector emite una secuencia de patrones binarios (franjas que se subdividen). Cada píxel de la superficie queda codificado por la secuencia de claro/oscuro que recibe; decodificando esa secuencia en la imagen de la cámara se sabe qué píxel del proyector iluminó cada punto. El código de Gray se usa porque dos valores consecutivos difieren en un solo bit, minimizando errores de decodificación en los bordes de franja.
Parámetros (de procam calibration tool):
- graycode_step: tamaño en píxeles de los bits (evita moiré).
- Black threshold (~40): ¿el píxel de cámara captura área proyectada?
- White threshold (~5): robustez del decodificado.
Con las correspondencias densas se obtienen las homografías locales y, por triangulación, profundidad 3D. OpenCV incluye un módulo structured_light con tutorial de captura/decodificado de gray code.
Relaciones¶
- Parte de: calibracion camara proyector
- Alternativa a: depth camera (Kinect/RealSense) para reconstrucción 3D
- Contrasta con: medicion por vision referencia escala (medición 2D por referencia, más simple)
Citas / evidencia¶
- "graycode_step is an option to specify the pixel size of bits in the gray code images" para prevenir moiré — procam calibration
Nota: structured light con proyector de bajo fps¶
Para una escena estática (objeto quieto sobre la mesa), el bajo fps del proyector doméstico no es problema: los patrones gray code son imágenes fijas que se proyectan y capturan una a una; basta con esperar a que cada patrón estabilice antes de capturar. Solo se vuelve crítico el fps para dynamic projection mapping (objetos en movimiento), que no es el caso de medir/escanear una pieza quieta. El costo es tiempo de captura (segundos), no precisión.
Abierto / gaps¶
- Implementación DIY concreta (script + tiempos) de escaneo gray code de un objeto pequeño con proyector de consumo.