2012-02-15 19 views
6

Estoy realizando detección de características en un video usando MATLAB. Las condiciones de iluminación varían en diferentes partes del video, lo que hace que algunas partes se ignoren al transformar las imágenes RGB en imágenes binarias.¿Cómo corregir la iluminación desigual en imágenes usando MATLAB?

Las condiciones de iluminación en una parte específica del video también cambian a lo largo del video.

¿Puede sugerir el mejor método en MATLAB para equilibrar la iluminación entre el marco y el video?

+0

[Filtrado homomórfico] (http://en.wikipedia.org/wiki/Homomorphic_filtering) podría ayudarlo. – Lucas

Respuesta

7

Tiene dos opciones, dependiendo de qué características desea detectar y qué desea hacer con el video.

  1. Ignore la iluminación de las imágenes porque (como ha concluido) esto contiene información inútil o incluso engañosa para su detección de características.
  2. Trate de reparar la irregularidad de la iluminación (que es lo que usted solicita).

1) es bastante fácil de hacer: Convertir la imagen a un colourspace que separa a cabo la iluminación en un canal separado, tales como: HSV (ignorar el canal V) Lab (ignorar L) YUV (ignorar Y) y realizar su detección de funciones en los dos canales restantes. De estos HSV es el mejor (como lo señala Yves Daoust en los comentarios) YUV y Lab dejan cierta información de iluminación en los canales UV/ab. Según mi experiencia, los dos últimos también funcionan según tu situación, pero el HSV es el mejor.

2) Es más difícil. Comenzaría por convertir la imagen a HSV.Luego haces la reparación de sólo el canal V:

  • Aplicar una gaussian blur a la imagen del canal V con un valor muy grande para sigma. Esto le da un promedio local para la iluminación. Calcule el valor medio global de V para esta imagen (este es un número). Luego, reste el valor promedio local del valor V real para cada píxel y agregue el promedio global. Ahora ha hecho una igualación de iluminación muy cruda. Puedes jugar un poco con el valor de sigma para encontrar el valor que funcione mejor.
  • Si esto no funciona, mira en las opciones zenopy gives in his answer.

Sea cual sea el método que elija, le aconsejo que se concentre en lo que quiere hacer (es decir, detectar características) y elegir los pasos intermedios, como éste que es suficiente para tus necesidades. Así que intente rápidamente algo, vea cómo esto ayuda a su detección de características,

+0

Ignorar L of Lab o Y de YUV no funcionará tan bien; estas cantidades son funciones crecientes de la iluminación (cantidades no homogéneas). El par Saturación/Valor es más apropiado porque estas coordenadas se basan en las proporciones de los componentes RGB, por lo tanto, son insensibles a la iluminación. También se puede usar cualquier par en xyz (no XYZ). –

+0

¿No está eliminando la variación de la iluminación el punto entero de la pregunta del cartel original? Y por lo tanto, ignorar L/Y o V un atajo práctico que podría ser lo suficientemente bueno? –

+0

No. Las coordenadas -ab de Lab y -UV de YUV todavía contienen información de iluminación (son pequeñas para una imagen oscura y grandes para una imagen clara; -ab son proporcionales a la raíz cúbica de intensidad y -UV son directamente proporcionales a la intensidad). HS- de HSV y xyz son independientes de la iluminación. –

5

Eso no es trivial task pero hay muchas maneras de tratar de superarlo. Puedo recomendar que empiece con la implementación del algoritmo retinex, o use una implementación de otras: http://www.cs.sfu.ca/~colour/publications/IST-2000/.

La idea básica es que la luminancia (intensidad de la imagen observada) = iluminación (luz incidente) x reflectancia (porcentaje refleja):

L(x,y) = I(x,y) x R(x,y) 

y está interesado en la parte I.

Para trabajar en las imágenes en color para cada cuadro, primero muévase al espacio de color hsv y opere el retinex en la parte v (valor).

Espero que tenga sentido.

5

Además de las irregularidades de la iluminación en las imágenes individuales, que se abordan mediante Retinex o mediante filtrado de paso alto, puede pensar en la Corrección de ganancia automática en todo el video.

La idea es normalizar las intensidades de imagen aplicando una transformación lineal a las componentes de color, de forma tal que las desviaciones promedio y estándar de los tres canales combinados se conviertan en valores predefinidos (promedio -> 128, desviación estándar -> 64).

La ecualización de histograma tendrá un efecto similar de "normalización" de los niveles de intensidad.

Desafortunadamente, los grandes cambios de escena afectarán este proceso de tal forma que las intensidades del fondo no se mantendrán constantes como cabría esperar.

Cuestiones relacionadas