Servicios Personalizados
Revista
Articulo
Indicadores
-
Citado por SciELO
-
Accesos
Links relacionados
-
Citado por Google
Similares en SciELO
-
Similares en Google
Compartir
Formación universitaria
versión On-line ISSN 0718-5006
Form. Univ. v.1 n.5 La Serena 2008
http://dx.doi.org/10.4067/S0718-50062008000500004
Formación Universitaria-Vol. 1 Nº5-2008, pág.: 21-28
ARTICULOS
Un Programa Interactivo para la Enseñanza de Algoritmos de Procesamiento Digital de Imágenes
An Interactive Program for the Teaching of Algorithms for Digital Image Processing
R. Barea, L. Boquete, L.M. Bergasa y M. Mazo
Universidad de Alcalá, Departamento de Electrónica, Campus Universitario, 28802 Alcalá de Henares (Madrid)-España
(e-mail: {rafael.barea, luciano.boquete, luism.bergasa, manuel.mazo}@uah.es)
Resumen
Se describe un programa interactivo para la enseñanza de algoritmos usados en procesamiento digital de imágenes. El sistema hace uso de funciones de biblioteca desarrolladas por los autores. La principal función de este sistema es proveer a potenciales usuarios de una herramienta eficiente para ayudar en la comprensión de conceptos básicos en el campo del procesamiento de imágenes. También ayuda en la comprobación de diversas técnicas usadas en problemas de visión artificial. El programa ha sido usado con éxito por estudiantes de ingeniería de la Universidad de Alcalá de Henares (España), en cursos de procesamiento digital de imágenes y en proyectos de fin de carrera.
Palabras clave: procesamiento digital de imágenes, visión artificial, programa interactivo, software
Abstract
A new interactive program for the teaching of algorithms used in digital processing of images is described in this article. The system makes use of library functions developed by the authors. The main function of this system is to provide potential users with an efficient tool to help in the comprehension of basic concepts within the field of image processing. It also helps in the testing of different techniques used in artificial vision problems. The program has been used with success by engineering students of the University of Alcalá de Henares (Spain), in courses of digital image processing and senior projects.
Keywords: digital image processing, artificial vision, interactive program, software
Nota: este artículo está tomado de "Información Tecnológica" (ISSN 0716-8756), vol. 9(2), 341-346 (1998)
INTRODUCCIÓN
La enseñanza de las técnicas de tratamiento digital de imágenes ha adquirido gran importancia en los últimos años, de hecho, se ha incluido como materia obligatoria u optativa en muchas de las nuevas titulaciones universitarias de ingeniería. El problema que se presenta a la hora de impartir dichas enseñanzas es la ausencia de laboratorios bien equipados donde el alumno pueda poner en práctica los conocimientos adquiridos en las clases de teoría. Esto se debe, en su mayor parte, al elevado precio de las tarjetas de procesado digital de imágenes, siendo difícil disponer de un laboratorio con un número suficiente de puestos de trabajo. Afortunadamente, hoy en día, la mayor parte de los alumnos tienen ordenador personal propio y los laboratorios disponen de suficientes puestos con ordenador. Por tanto, se hace evidente la ventaja de disponer de un programa capaz de simular una tarjeta digitalizadora de imágenes, donde se puedan probar los algoritmos de tratamiento digital de imágenes prácticamente en las mismas condiciones que en funcionamiento real.
Conscientes de dichas limitaciones, se ha desarrollado un programa interactivo de procesado digital de imágenes que funciona en un ordenador personal (Barea et al., 1996). El entorno de trabajo diseñado es Windows, de forma que el usuario accede de forma sencilla a los diversos submenús eligiendo la operación a realizar por medio del teclado o ratón. Dicho programa está basado en una librería de funciones de tratamiento de imágenes previamente programadas por los autores. De esta forma el usuario puede hacer uso de la misma para realizar nuevas aplicaciones, debiendo únicamente proceder al "linkado" de su código para obtener un programa ejecutable bajo Windows, consiguiendo un tiempo de desarrollo mínimo.
El presente artículo se ha organizado en los siguientes puntos: en primer lugar se describe la librería de funciones para el tratamiento de imágenes que ha servido como base para la programación del programa NEW- IMAGE: a continuación se comentan las posibilidades que ofrece este programa en cuanto a la modificación de imágenes; y finalmente se presentan las conclusiones.
LIBRERÍA DE FUNCIONES ORIENTADAS AL TRATAMIENTO DE IMÁGENES (LOTI)
El objetivo de esta librería es proporcionar un amplio conjunto de funciones orientadas al tratamiento de imágenes. La misma ha sido desarrollada mediante el paquete Microsoft Visual C++ utilizando en su programación las técnicas de programación orientada a objetos. De este modo, cada buffer o imagen es un objeto, y como tal tiene asociado un determinado número de variables y de funciones que pueden ser aplicadas sobre la misma. Así resulta sencillo el programar las funciones originales y sobre todo, exportar el código a otras plataformas distintas. Dichas funciones presentan una amplia gama de posibilidades en el tratamiento de imágenes: análisis de objetos, operaciones de reconocimiento de patrones, funciones gráficas y en general permiten el procesado de imágenes tanto en color como en escala de grises.
Sobre las imágenes, cargadas desde disco, se pueden realizar diversas transformaciones: opresiones punto a punto, filtros espaciales, operaciones morfológicas, extracción de características, etc. También pueden dibujarse gráficos (rectángulos, arcos, líneas y puntos), así como introducir texto. Las funciones de análisis de objetos permiten identificar las características de las regiones conectadas (objetos) dentro de una imagen. Pueden calcularse determinados parámetros tales como el área, el perímetro, la circularidad, etc. La búsqueda de patrones puede ayudar a resolver problemas de visión artificial tales como: medidas e inspección de objetos, determinación de coordenadas dentro de la imagen y el número de coincidencias de un determinado modelo.
Se permite la posibilidad de trabajar con imágenes en escala de grises (8 bits por píxel) y con imágenes en color (RGB 8:8:8). Ambos tipos de imágenes pueden ser visualizados por pantalla. La asignación de memoria se realiza a través de buffers de imágenes. Éstos son áreas de almacenamiento que guardan los datos para ser visualizados, manipulados o analizados posteriormente. Para la asignación de estos espacios de memoria existe un grupo de funciones denominado "F_MEM". Los tipos de buffer que pueden ser definidos son: IMAGEN (Buffer imagen), LUT (Tabla look-up) y KERNEL (Buffer kernel para las funciones de convolución). Los buffers pueden ser definidos con una sola banda (imágenes binarias o en escala de grises) o con tres bandas (imágenes en color). A continuación se realiza una descripción de los diversos grupos en que pueden englobarse las funciones desarrolladas según sus características.
Tablas look-up (LUT)
Los buffers tipo LUT son áreas de memoria cuya dimensión Y es igual a 1 y donde el número de entradas se corresponde con el rango completo de valores de un buffer imagen (número de niveles de gris). La introducción datos en un buffer tipo LUT puede realizarse, bien mediante las funciones de manipulación de buffers, o bien mediante funciones que generan LUTs especiales (valores en rampa, funciones matemáticas...)
Procesado de Imágenes
El procesado de imágenes realiza varios tipos de operaciones:
- Punto a punto: computan cada píxel como una función de el mismo y los píxeles situados en su entorno en una o varias imágenes fuente.
- Estadísticas: extraen información estadística (media, varianza, otras).
- Filtrado espacial: el valor de cada píxel depende de la suma ponderada de los valores de los píxeles que ocupan posiciones vecinas
- Morfológicas: el valor de cada píxel se calcula según relaciones topológicas con sus píxeles vecinos.
Análisis de Objetos
Los objetos son áreas de píxeles vecinos los cuales tienen el mismo estado lógico. El análisis de estos objetos permite extraer características de diferentes áreas de interés dentro de una imagen. Algunas de las operaciones que se pueden realizar son: definición y selección de objetos, calculo de medidas y otras.
Búsqueda de Modelos
Se incluyen funciones básicas de búsqueda de modelos o patrones en imágenes en escala de grises y binarias. Los pasos a seguir son:
- Definir un modelo.
- Especificar los parámetros de la búsqueda.
- Asignar un buffer para almacenar el resultado de la búsqueda.
- Encontrar dicho modelo en la imagen a testear.
- Lectura de los resultados.
Gráficos
Mediante funciones de dibujo y texto e posible dibujar todo tipo de rectángulos, arcos, puntos y líneas, así como escribir texto con distintas fuentes y distintos tamaños. Igualmente, existe la posibilidad de elegir distintos colores de fondo y grosores, tipos y colores de lápiz, y demás posibilidades.
Programa NEW_IMAGE
La principal ventaja del programa es que solamente se necesita disponer de un ordenador personal con las siguientes características: PC386 o superior, tarjeta VGA o superior, un mínimo de 12 MB de disco duro libre para realizar la instalación y un mínimo de 4 MB de RAM. Con estas características, es posible definir cuatro buffers con resolución 640x480 píxeles o uno en color y otro en escala de grises. En ambos casos, cada píxel o banda de color se codifica con ocho bits. El programa debe ser ejecutado bajo Windows 3.1 o 3.11.
En la tabla 1 se muestran los menús y submenús que pueden ser invocados por el usuario durante el manejo del programa NEW-IMAGE. Existen seis menús principales que aparecen la pantalla principal del programa, que a su vez se despliegan en una serie de submenús. En
Tabla 1: Opciones del programa NEW_IMAGE
Menú | Submenú |
PRINCIPAL | Inicialización |
IMAGEN | Ver buffer |
OPERAR | Umbralización |
ANÁLISIS | Contorno |
COLOR | RBG a HLS |
EJEMPLO | En b/n |
En el segundo menú, denominado "Imagen" se han agrupado aquellas funciones que permiten manipular las diferentes imágenes que en un momento determinado se encuentran en memorial Los nombres de los diferentes submenues son: "Ver buffer", "Borrar buffer", " importar fichero", "Exportar fichero", "Ver el estado de un buffer ", "Cambiar buffer ", "Copiar buffer ". La Fig. 3 contiene el menú para importar ficheros.
El menú de "Operar" da acceso a todas las funciones que permiten manipular el contenido de una imagen. Así, se despliega el submenú de "Umbralización", que convierte una imagen de diferentes niveles a únicamente dos niveles de información; "Inversa" obtiene el negativo de una imagen; "Variación del nivel de brillo", se realizan modificaciones sobre los niveles de gris de la imagen; "Operaciones aritméticas", permite realizar diferentes operaciones, ya sean aritméticas o lógicas entre imágenes; "Máscaras", permite convolucionar la imagen con diferentes tipos de mascaras correspondientes a filtros lineales (paso alto y bajo) y no lineales (mediana, etc); "Ecualización", realiza diferentes ecualizaciones sobre una imagen; uniforme, exponencial, etc. (Pratt, 1979; Mazo et al .,1996); "Morfología", se aplican diversos operadores morfológicos sobre imagen; FFT se obtiene las transformada discreta de Fourier de una imagen y "Zoom", el usuario selecciona con el ratón del ordenador que zona de la imagen sesea manipular.
Fig. 1: Menú Principal | Fig. 2: Menú de selección de imágenes |
Fig. 3: Menú de selección de imágenes | Fig. 4: Menú de umbralización |
En la Fig. 4 se puede ver el menú para realizar una umbralización. Moviendo la barra de nivel de umbral con ratón se selecciona el umbral deseado. En la Fig. 5 se puede observar el menú de selección de diferentes mascaras. El cuarto menú "Análisis" engloba aquellas funciones útiles para el análisis de una imagen. Las diferentes opciones permitidas son: "Contornos", extrae los bordes de los objetos de una imagen, "Medida de objetos", se realizan de forma automática diferentes medidas de los objetos presentes en la imagen: área, perímetro, momentos invariantes, etc.; "Histograma", se obtiene la distribución en niveles de gris de los pixels de una imagen; "Función energía", calcula la función de energía de la imagen: "Probabilidad del histograma", se extraen parámetros estadísticos del histograma y "Localización de patrones", permite definir un modelo y encontrarlo dentro de una imagen.
Fig. 5: Menú de selección de máscaras |
En el menú "Color" se tiene acceso a la posibilidad de realizar conversiones entre los espacios de color RGB y HSI, siendo posible obtener por separado cada una de las tres componentes (R-G-B o H-S-I ). Por ultimo, se incluye en el menú "Ejemplo" un tutorial de algoritmos en donde se explica al usuario, mostrando unos ejemplos, el efecto sobre una imagen de los diferentes algoritmos con los que cuenta el programa.
Los algoritmos de procesado han sido optimizados al máximo, con el fin de que el tiempo de respuesta sea mínimo (Sotelo et al., 1996). En la Tabla 2 se muestra el tiempo necesario para realizar diversas operaciones con un Pentium a 120 Mhz con 16 MB de memoria RAM, sobre imágenes en blanco y negro y en color.
Tabla 2: Tiempos de respuesta
Operación | Blanco y negro | Color |
- Filtrado con una mascara 3x3. (Filtr. Paso Bajo) - Dilatación binaria con una mascara de 3x3. - Ecualización uniforme del histograma. | 220mseg. 310 mseg. 160 mseg. | 670 mseg, 950 mseg. 500 mseg. |
Fig. 6: Imagen original | Fig. 7: Realce de bordes verticales |
Fig. 8: Ecualización uniforme | Fig. 9: Dilatación binaria |
En las figuras 6 a 14 se muestran varios ejemplos de las posibilidades del programa. Se incluyen casos de realce de bordes mediante mascaras, operaciones morfológicas, umbralización de imágenes, zoom de una zona y representación de un histograma.
Fig. 10: Original | Fig. 11: Umbral | Fig. 12: Original | Fig. 13: Zoom |
Fig. 14: Histograma |
CONCLUSIONES
Se ha presentado un material didáctico, consistente en el programa interactivo NEW_IMAGE y la librería de funciones LOTI, que resulta de gran utilidad para asimilar los principales conceptos del procesado digital de imágenes. Al mismo tiempo, facilita su comprensión y estimula al usuario en el desarrollo de la materia.
El programa resulta fácil de usar y no requiere un hardware específico ni grandes ordenadores para su funcionamiento. Al mismo tiempo, el desarrollo de las librerías ha contribuido a disponer de un software libre y a disposición de los usuarios.
Aunque existen varios programas interactivos, ya sean comerciales o desarrollados por otras universidades, relacionados con el procesamiento digital de imágenes (Photo-Styler, Corel Draw, Matlab, etc.), el programa desarrollado contempla nuevas funciones normalmente no consideradas en otros programas, y permite el desarrollo de nuevas aplicaciones trabajando únicamente con un compilador de C++ comercial y la librería de funciones LOTI.
Todas estas características hacen de esta herramienta un material eficaz, principalmente a dos niveles:
- Como software interactivo que el estudiante puede instalar en su propio ordenador y usuario como un método de aprendizaje de los principios del análisis de imágenes sin necesidad de disponer de tarjetas especificas para tal aplicación.
- Como complemento a las clases teóricas, ya que pueden poner en práctica los conocimientos adquiridos en las mismas y mejorar la asimilación de dichos conceptos.
REFERENCIAS
Barea. R., L. Boquete y M. Mazo; New-Image: Un programa para la enseñanza de algoritmos de tratamiento digital de imágenes. ll Congreso sobre tecnologías aplicadas a la enseñanza de la electrónica. Sevilla- España (1996)
Mazo, M., L. Boquete y R. Barea; Visión Artificial, 1° edición. Servicio de Publicaciones. Universidad de Alcala-España (1996)
Pratt. W.K.; Digital Image Processing. Prentice-Hall Processing Series ( 1979 )
Sotelo. M.A., R. Barea. L.M. Bergasa y L. Boquete; Algoritmos para tratamiento digital de imágenes, 1` edición. Servicio de Publicaciones. Universidad de Alcala-España (1996)