1. Facultad de Ingeniería Electrónica y Mecatrónica
Procesamiento de Imágenes
y Visión Artificial
(PS02)
Laboratorio: 4
Procesamiento Digital de Imágenes con MatLab II
Ing. José C. Benítez P.
2. Índice
Procesamiento Digital de Imágenes con MatLab:
Introducción.
Conceptos básicos de las imágenes
Lectura y escritura de archivos de imágenes.
Acceso a pixel y planos en las imágenes.
Sub muestreo de imágenes
Tipos de datos de los elementos de una imagen
Procesamiento de la imagen
Filtraje espacial
Funciones para la extracción de bordes
Imágenes binarias y segmentación por umbral.
Operaciones morfológicas.
Operaciones basadas en objetos
Selección de objetos
Medición de características
Funciones para la conversión de imágenes y formatos de color.
La herramienta vfm
Captura de la imagen en MatLab
Notas finales
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 2
3. Introducción
Implementación de VA con C++
• La implementación de algoritmos en Visión Artificial (VxC)
resulta muy costoso en tiempo ya que se requiere de la
manipulación de punteros, gestión de memoria, etc.
• Lenguaje C++ (que por sus características compartidas de alto
y bajo nivel lo hacen el mas apropiado para la implementación
de algoritmos de VC) supondría la inversión de tiempo y sin la
seguridad de que lo implementado funcionará.
• C++ para el periodo de prueba exige un tiempo normal de
corrección de errores debidos al proceso de implementación del
algoritmo, es decir errores programáticos efectuados por
ejemplo al momento de multiplicar dos matrices, etc..
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 3
4. Introducción
MatLab oportuno, el Toolbox de PDI (TPDI)
• Todos estos problemas pueden ser resueltos si la
implementación de prueba es realizada en MatLAB utilizando
su TPDI con ello el tiempo de implementación se convierte en
el mínimo con la confianza de utilizar algoritmos
científicamente probados y robustos.
• El TPDI contiene:
• Un conjunto de funciones de los algoritmos mas
conocidos para trabajar con imágenes binarias,
trasformaciones geométricas, morfología y
manipulación de color.
• Funciones ya integradas en MatLab permite realizar
análisis y trasformaciones de imágenes en el dominio de
la frecuencia (trasformada de Fourier y Wavlets).
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 4
5. Conceptos básicos de las imágenes
Imagen en escala de grises
• En MatLab una imagen a escala de grises
es representada por medio de una matriz
bidimensional de m x n elementos en donde
n representa el numero de píxeles de
ancho y m el numero de píxeles de largo.
• El elemento v11 corresponde al elemento de
la esquina superior izquierda (ver figura),
• Cada elemento de la matriz de la imagen
tiene un valor de 0 (negro) a 255 (blanco).
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 5
6. Conceptos básicos de las imágenes
Imagen en color
• Por otro lado una imagen de color RGB
(la mas usada para la VA, además de
ser para MatLab la opción default) es
representada por una matriz
tridimensional m x n x p, donde m y n
tienen la misma significación que para
el caso de las imágenes de escala de
grises mientras p representa el plano,
que para RGB puede ser 1 para el rojo,
2 para el verde y 3 para el azul.
• La figura muestra detalles de estos
conceptos.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 6
7. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
• Para leer imágenes contenidas en un archivo
al ambiente de MatLab se utiliza la función
imread, cuya sintaxis es:
imread(’nombre del archivo.ext’)
• Donde nombre del archivo es una cadena de
caracteres conteniendo el nombre completo
de la imagen y ext su extensión.
• Al ejecutar el comando se irán desplazándose
por CW el contenido de la imagen.
• Los formatos de imágenes que soporta
MatLab son los mostrados en la tabla.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 7
8. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
• Para manipular una imagen solo tiene que
usarse la función imread y asignar su
resultado a una variable que representará a
la imagen ( de acuerdo a la estructura, para
representar escala de grises y para RGB.
• Ejemplo: Para usar el archivo logo.jpg se
tendría que escribir en línea de comandos:
>> imagen=imread(’logo.jpg’);
con ello la imagen contenida en el archivo
logo.jpg quedará contenida en la variable
imagen.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 8
9. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
• Una vez que la imagen esta contenida
en una variable (imagen) de matlab es
posible utilizar las funciones para
procesar la imagen.
• Por ejemplo, una función que permite
encontrar el tamaño de la imagen es
size(variable)
• > >[m, n]=size(imagen);
en donde m y n contendrán los valores
de las dimensiones de la imagen.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 9
10. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 10
11. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 11
12. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
• Para grabar el contenido de una imagen en un archivo se
utiliza la función:
imwrite(variable, ’nombre del archivo’);
variable representa la variable que contiene a la imagen y
nombre del archivo el nombre del archivo con su extensión.
• Ejemplo. La variable imagen que contiene la imagen
logo.jpg nos interesa grabar en el archivo logocolor.jpg:
>> imwrite(imagen, ’logocolor.jpg’) ;
> > [m, n]=size(imagen);
m y n contendrán los valores de las dimensiones de la
imagen.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 12
13. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 13
14. Conceptos básicos de las imágenes
Lectura y escritura de imágenes a través de archivo
• Después que realizamos un procesamiento
con la imagen, es necesario mostrar el
resultado obtenido.
• La función imshow(variable) permite
desplegar la imagen en una ventana en el
ambiente de trabajo de matlab.
• Ejemplo. Si la variable a desplegar es
imagen en la línea de comandos se escribirá:
>> imshow(imagen);
obtendríamos la imagen variable imagen que
corresponde al archivo logo.jpg.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 14
15. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
• El acceso a píxel de una imagen es una de las
operaciones mas comunes en VA y en matlab
es sencillo; se debe indexar el píxel de interés
en la estructura de la imagen.
• Ejemplo. Tenemos una imagen imagenbn en
escala de grises. Para obtener su valor de
intensidad en el píxel especificado por m=100 y
n=100 solo se escribe:
>> imagenbn(100,100)
ans =
251
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 15
16. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
• Para cambiar el valor del píxel
(100,100) en imagenbn a negro, se
le debe asignar a este pixel el valor
de 0, asi:
>> imagebn(100,100) = 0;
• Para verificar:
>> imshow(imagenbn);
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 16
17. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
• Las imágenes a escala de grises estas solo tienen un
plano, constituido por la matriz m x n que contiene los
valores de intensidad para cada índice.
• Las imágenes a color cuentan con mas de un plano.
• En las imágenes RGB estas cuentan con 3 planos uno
para cada color que representa.
• Ejemplo. La imagen RGB contenida en la variable
imagenc es la del archivo logo.jpg, para obtener cada uno
de los planos que la componen, se escribe:
>> planoR=imagenc( :, :,1) ;
>> planoG=imagenc( :, :,2) ;
>> planoB=imagenc( :, :,3) ;
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 17
18. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 18
19. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
• Para manipular un píxel de una imagen a color
RGB, la imagen tendrá un valor para cada uno
de sus planos R, G y B.
• Ejemplo. La imagen RGB logo.jpg contenida en
la variable imagenc. Paraobtener el valor del
píxel m=100 y n=100 para cada uno de los
diferentes planos R, G y B.
• Se debe escribir:
>> valorR=imagenc(100,100,1) ;
>> valorG=imagenc(100,100,2) ;
>> valorB=imagenc(100,100,3) ;
• Lo cual dará como resultado tres valores.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 19
20. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 20
21. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
• De igual forma que con imágenes en escala
de grises podemos modificar el valor de los
píxeles a otro color mediante el cambio de su
valor en cada uno de sus respectivos planos.
• Ejemplo. Considerando logo.jpg en imagenc:
>> imagenc(440, 250,1) = 255;
>> imagenc(440, 250, 2) = 255;
>> imagenc(440, 250, 3) = 255;
• Lo cual dará como resultado tres valores.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 21
22. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 22
23. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
• A veces es necesario saber el color o la intensidad de gris (el
valor del píxel) de forma interactiva, es decir tener la
posibilidad de seleccionar un píxel en una región y obtener el
valor de este.
• Esta posibilidad es ofrecida por la función impixel, la cual
interactivamente entrega el valor (uno o tres) del píxel
seleccionado que aparezca en la ventana desplegada por la
función imshow.
• El formato de esta función es: valor = impixel;
• Donde valor representa un escalar, en el caso de que la
imagen sea a escala de grises o bien un vector de 1 x 3 con
los valores correspondientes a cada uno de los planos RGB.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 23
24. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
• Para utilizar esta función es necesario antes, desplegar
la imagen con la función imshow.
• Una vez desplegada se llama a la función y cuando el
cursor del ratón este sobre la superficie de la imagen
cambiara a una +.
• Cuando se presione el botón izquierdo del ratón se
seleccionara el píxel, el cual podemos seleccionar otra
vez en caso de que se allá cometido un error a la hora
de posicionar el ratón, ya que la función seguirá
activada hasta que se presione la tecla de enter o
pulsamos el botón derecho del mouse.
• La figura muestra una imagen de la operación descrita.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 24
25. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 25
26. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 26
27. Conceptos básicos de las imágenes
Acceso a pixels y planos en las imágenes
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 27
28. Notas finales
• Para la sociedad, la biometría es una forma
efectiva de conservar la privacidad y protegerse
contra el robo de la identidad.
• La biometría también ofrece una alternativa
conveniente en el transporte de documentos,
recordar claves y memorizar números de
identificación personal.
• Puesto que las personas pueden ser identificadas
con precisión empleando la biometria, los usuarios
finales obtienen beneficios al evitar la tediosa (y
en ocasiones molesta) tarea de identificarse
empleando palabras claves, números especiales,
tarjetas de identificación, etc.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 28
29. Notas finales
• El campo de aplicación de ésta nueva ciencia
es ilimitado, puede ir desde un simple teléfono
celular, hasta complicadas transacciones
financieras, ordenes medicas, cajeros
automáticos, automóviles, tarjetas
inteligentes, etc., la frontera es la mente
humana.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 29
30. Tarea
1. Hacer una lista de 03 sensores de huellas dactilares de cada
uno de 02 fabricantes. Adjuntar datasheet y hacer un
resumen con las características mas importantes.
2. Hacer una lista de 03 sensores para el reconocimiento del
iris de cada uno de 02 fabricantes. Adjuntar datasheet y
hacer un resumen con las características mas importantes.
3. Hacer una lista de 03 sensores para el reconocimiento de
voz de cada uno de 02 fabricantes. Adjuntar datasheet y
hacer un resumen con las características mas importantes.
4. Explicar el funcionamiento las diferentes tecnologías que se
utilizan en las cámaras fotográficas digitales. Adjuntar
datasheet de cada tecnología.
5. Explicar el funcionamiento las diferentes tecnologías que se
utilizan en las filmadoras digitales. Adjuntar datasheet de
cada tecnología.
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 30
31. Tarea
Presentación:
• Impreso y en USB.
• Adjuntar fuentes (03 PDFs, 03 DOCs y 03 PPTs de
cada tipo de sensor y tecnologías solicitadas).
Visión por Computador utilizando MatLAB
y el Toolbox de Procesamiento Digital de
Imágenes
Erik Valdemar Cuevas Jimenez
Daniel Zaldivar Navarro
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 31
32. Agradecimiento
Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 32