Tutorial de visión por computadora

El procesamiento de imágenes digitales y la visión por computadora es un campo interesante ya que está muy bien ubicado entre las matemáticas y las ciencias de la computación. Por lo tanto, es muy útil comprender los fundamentos y aplicarlos usando la programación para comprender el tema.

Las imágenes digitales son la discretización de señales bidimensionales o tridimensionales. En otras palabras, las imágenes digitales son conjuntos muestreados de píxeles o vóxeles de dominios continuos.

                                        f : R² ⊃ Ω → R

Donde la f es una imagen digital sobre Ω : Dominio de imagen rectangular

En aras de la simplicidad, solo hablaremos de imágenes digitales bidimensionales, como las de nuestros avatares de StackOverflow.

Acerca de los píxeles: una nota rápida sobre los valores de píxeles antes de comenzar a hablar sobre los tipos de imágenes. Como regla general, los píxeles comienzan con el valor 0, que indica que no hay luz (negro), llega a 1, la intensidad máxima (por ejemplo, blanco) y se representan en números enteros.

Imágenes binarias: Solo imágenes en blanco y negro. Cada píxel es 0 o 1, cada píxel puede ser representado por un bit. No son muy populares, ya que generalmente se utilizan en aplicaciones científicas o para otras operaciones de procesamiento de imágenes como máscara, por ejemplo.

Imagen de Lena en forma binaria

Un ejemplo de imagen binaria. (Advertencia: los valores de píxeles de la imagen de este archivo no son necesariamente binarios, esto es para demostración, también esta es Lena, la estrella del mundo del procesamiento de imágenes)

Imágenes en escala de grises: Gracias a los filtros en línea, todos aún conocen muy bien estas imágenes. Estas imágenes son generalmente de un byte por píxel, siendo 0 negro y 255 blanco, todo lo que hay entre ellos es un tono diferente a un gris, dado que los humanos solo pueden distinguir 40 tonos de gris, este rango es suficiente para muchas aplicaciones (Tenga en cuenta que los valores de píxeles aquí se asignan de 0 a 1 a valores de byte 0 - 255)

Imagen de Lena en escala de grises

Imágenes en color: Finalmente, el tipo de imagen digital más común, las imágenes en color. Tenemos que mencionar el concepto de canales aquí. Las imágenes digitales también tienen canales, en realidad, las imágenes binarias y en escala de grises descritas anteriormente también tienen canales. La descripción más común sería el modelo RGB (Rojo-Verde-Azul), en tal caso, la imagen tiene 3 canales (no lo confunda con las dimensiones, aún son imágenes en 2D) para describir el enrojecimiento, el azul y el verdor de la imagen. En este caso, cada píxel es un triplete, un valor entre 0 - 255 (Ningún rojo a más rojo), 0 - 255 (Ningún verde a más verde), 0 - 255 (Ningún azul a más azul). Para este modelo, el píxel {0,0,0} es negro, {255,255,255} es blanco, {255,0,0} es rojo, {255, 255, 0} es amarillo. Sin embargo, el color es un tema muy amplio y puede consultar las referencias para obtener más información.

Imagen de Lena en color

Imágenes hiperespectrales:

Después de discutir los canales, es más fácil hablar de imágenes hiperespectrales. Estas imágenes pueden tener cientos de canales y se usan comúnmente en microscopía, imágenes satelitales, etc.

lecturas

  1. Muestreo de señal: https://en.wikipedia.org/wiki/Sampling_(signal_processing)

  2. Biblia del Procesamiento Digital de Imágenes: R. C. Gonzalez, R. E. Woods: Procesamiento Digital de Imágenes. Tercera edición, Pearson Prentice Hall, Upper Saddle River, 2008.

  3. Revisión de Visión por Computador (Hasta Aprendizaje Profundo): R. Szeliski: Visión por Computador: Algoritmos y Aplicaciones. Springer, Nueva York, 2010.

  4. Para comprender las imágenes binarias, en escala de grises y en color: https://en.wikipedia.org/wiki/Grayscale