Un proceso de demostración de alta calidad está lleno de sutileza, pero se puede obtener una respuesta muy económica si puede aceptar una pérdida del 50% en la resolución espacial. Simplemente sume grupos de cuatro píxeles de sensor para obtener un solo píxel gris. Suponiendo que su sensor tiene un patrón de filtro Bayer "típico", habrá el doble de sensores verdes que el rojo o el azul. La suma de grupos cuadrados de cuatro píxeles generará Y = 2*G + R + B
, lo que hace un énfasis excesivo en el componente azul, pero en casos simples como verificar el enfoque del sistema óptico no será un problema.
Entonces, para una disposición típica de píxeles que se ve así:
G R G R G R....
B G B G B G
G R G R G R
B G B G B G
.
.
.
Obtendría una salida Y para cada grupo de cuatro, con una resolución espacial más baja:
Y Y Y
Y Y Y
La implementación de esto se puede hacer en hardware (como en un FPGA) con solo suficiente memoria para almacenar la mitad de una línea de escaneo, ya que puede sumar los píxeles de entrada en pares la primera línea, luego en pares e incluyendo la línea anterior suma en cada segunda línea.
También puede generar tantos píxeles en Y como entradas haciendo una ventana deslizante, que requeriría el valor de la memoria completa en hardware de una línea de exploración.
Hacerlo "correctamente" implica una cantidad de pasos de procesamiento, pero la operación principal es aplicar filtros espaciales para estimar imágenes monocromáticas separadas de R
, G
y B
a resolución idéntica, con cuidado de alinear apropiadamente Dadas esas imágenes alineadas, es sencillo calcular Y
en cada píxel.
Se puede encontrar una implementación de un sistema de demostración bastante sofisticado en dcraw , que consume datos de sensores en bruto y emite Imágenes JPG. Se pueden obtener datos de sensores sin procesar de muchas cámaras digitales de gama alta, pero generalmente se encuentran gravados por secretos comerciales que dificultan su interpretación para terceros. Coffin y su comunidad de usuarios han puesto un gran esfuerzo en la ingeniería inversa de los formatos de archivo en bruto escritos por dichas cámaras. Pero también se puede utilizar en su contexto.
Al desarrollar proyectos de cámaras en el pasado, tomé píxeles sin procesar directamente de los sensores CMOS capturados en la RAM, los coloqué en un archivo y pasé el archivo a través de dcraw.
El problema relacionado con una cámara prototipo es enfocar su primer prototipo óptico, para tener píxeles que puedan significar algo y, por lo tanto, probar que todo funciona mostrando un archivo JPG terminado de su banco.
El primer paso es encontrar y usar los modos de patrón de prueba en su sensor. Con eso, normalmente puede obtener patrones de referencia con contenido conocido para probar su electrónica y el flujo de datos. Luego puede cambiar a la óptica real con cierta confianza de que los píxeles en bruto son significativos y concentrarse en obtener la óptica para darle una imagen enfocada.
Una técnica que he usado en el pasado para una cámara basada en un soporte de lente con montura M12 era enfocar la lente bastante decente con el soporte de lente montado en una placa de evaluación que tenía un software que proporcionaba una vista en vivo en un ORDENADOR PERSONAL. Luego bloqueé la lente y moví todo el soporte de la lente a mi prototipo. Debido a las ligeras variaciones en la posición del sensor en relación con la PCB y el orificio de montaje, no fue perfecto, pero fue lo suficientemente bueno para obtener una imagen reconocible.