Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Introducción: Procesamiento de Imágenes con MatLab
• Es una plataforma que permite ejecutar lenguaje interpretado.
• El código se genera en scripts o funciones, guardados en texto plano, generalmente en archivos .m.
• La mayoría de las funciones y librerías están optimizadas para trabajar con matrices.
• Dada la amplia cantidad de librerías existentes, es una herramienta potente para prototipado, ensayos y simulación de sistemas.
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
Carpeta corriente: Permite configurar la carpeta de trabajo.
MatLab buscará funciones y archivos por defecto en ella.
Ventana de comandos: Permite manejar todos los comandos.
Luego del símbolo “>>” se puede llamar a funciones o ejecutar
scripts.
Historial de comandos: Almacena el historial de todos los comandos
ingresados en la ventada de comandos.
Se pueden ver los archivos en la carpeta corriente (“CurrentDirectory”) o ver el tipo y el
tamaño de las variables cargadas en memoria (“Workspace”).
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
Permite abrir el editor para generar scripts o funciones.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
Funciones
Las funciones inician con la palabra clave “function”, seguida de los parámetros de salidas
entre corchetes y separados por comas, el símbolo “=”, el nombre de la función y los parámetros de entrada entre paréntesis y
separados por comas.
La función se guarda en un archivo .m y luego se llama desde la ventana de comandos. Observar que en este caso se imprimieron
los valores resultantes, ya que se omitió el “;” al llamar a la función.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
Scripts
Un script simplemente es una colección de código. Se puede ejecutar desde la ventana de comandos escribiendo el nombre del archivo o
copiando y pegando su contenido.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
Matrices
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
• Se accede a sus elementos indicando los números de cada dimensión (filas, columnas, etc) separados por comas,
en secuencia y entre paréntesis.
Ejemplo: Una matriz llamada A bidimensional de 10x20.
El elemento en la fila 1 y columna 4, se obtiene como A(1,4).
• El carácter “:” significa todos los elementos en esa dimensión.
Si quisiera todos los elementos de A en la fila 1, debería hacer A(1,:).
• El carácter “:” también permite definir intervalos/rangos.
Si quisiera todos los elementos de A en la fila 1 entre la columna 2 y 10, debería hacer A(1,2:10) o sino
A(1,[2,3,4,5,6,7,8,9,10]) o A(1,[2:10]).
Matrices
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
• Operaciones: Producto “*”, división “/” , suma “+”, , resta “-”.
• Operaciones elemento a elemento. Se indican anteponiendo el carácter “.” al símbolo de la operación.
• Operadores de comparación (trabajan elemento a elemento): menor que “<”, mayor que “>”, menor igual “<=”,
mayor igual “>=”, igual “==”, distinto “~=”.
• Operadores lógicos (trabajan elemento a elemento): AND “&”, OR, “|”, NOT “~”.
Bloques de código: IF
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
• Evaluar una expresión condicional:
✓Si se cumple (es verdadera) se ejecuta un bloque de código.
✓Si es falsa se puede ejecutar o no otro bloque.
if condición
% Bloque de código si es verdadera
else
% Bloque de código si es falsa
end
if condición_1
% Bloque de código
elseif condición_2
% Bloque de código
else
% Bloque de código si es falsa
end
if condición
% Bloque de código si es verdadera
end
Bloques de código: SWITCH CASE
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
• Evalua una expresión y ejecuta código según cada valor que puede tomar.
switch expresión
case valor_1
% Bloque de código
case valor_2
% Bloque de código
case valor_3
% Bloque de código
…
otherwise
% Bloque de código
end
Bloques de código: WHILE
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
• Ejecuta un bloque de código en forma continuamientras se cumpla una condición.
while condición
% Bloque de código
end
Bloques de código: FOR
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Introducción a MatLab:
• Ejecuta un bloque de código en forma repetida unnúmero fijo de veces.
for variable=valor_inicial:valor_final
% Bloque de código
end
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Tipos de imágenes:
• Imágenes de RGB: Una matriz imagen de 𝐹 × 𝐶 × 𝑐, donde para cada píxel se tiene directamente el
valor de cada canal de color.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Tipos de imágenes:
• Imágenes indexadas: Una matriz imagen de 𝐹 × 𝐶 y una
matriz auxiliar (llamada mapa de color) que establece la
equivalencia entre el valor de la matriz y el color con el que
debe representarse.
Matriz imagenMapa de color
ColorR G B
0 0 0 0 Negro
1 0 0 1 Azul
2 1 0 0 Rojo
3 1 1 0 Amarillo
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Tipos de imágenes:• Imágenes en escala de grises (intensidad): Una matriz imagen 𝐹 × 𝐶 , no se necesita el mapa de color para
representarla.
• Imágenes binarias: Una matriz imagen 𝐹 × 𝐶 con dos valores posibles 0 (negro) y 1 (blanco), o 0 y 255.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Funciones básicas con imágenes:
Lectura: Función imread.
[x,map]=imread(‘nombre de imagen’)
[x,map]=imread(‘nombre de imagen’,’ext’)
Matriz imagen se guarda en la variable x.
La variable map contendrá el “mapa de colores”.
Mapa de color: Una tabla auxiliar que indica con qué color se debe representar cada posible valor de la matriz imagen. Es
una tabla que codifica los valores de la matriz imagen y los asocia con colores
usando el sistema RGB.
Si tenemos una imagen en niveles de gris y usamos 256 niveles distintos, el mapa de
color correspondiente será:
Importante: Los niveles de gris se caracterizan por tener el mismo valores en
las componentes R, G y B.
Mapa_Grises=gray(256);
Mapa_Colores=jet(256);
256 niveles de gris.
256 colores distintos.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Funciones básicas con imágenes:
Lectura: Función imread.
[x,map]=imread(‘nombre de imagen’)
[x,map]=imread(‘nombre de imagen’,’ext’)
Matriz imagen se guarda en la variable x.
La variable map contendrá el “mapa de colores”.
Mapa de color: Una tabla auxiliar que indica con qué color se debe representar
cada posible valor de la matriz imagen
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Funciones básicas con imágenes:
Representación: Función imshow.
imshow(x,map)
Mostrará la imagen cuya matriz es x en la figura activa, utilizando el mapa de color map.
El workspace nos muestra el tamaño
de la matriz, el formato y el
mínimo y máximo valor.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Funciones básicas con imágenes:
Conversión de formato: Funciones uint8, uint16 y double.
• Por una cuestión de espacio en memoria, no es óptimo trabajar con matrices en formato doble precisión, por lo que se usan
enteros de 8 o 16 bits.
• Estas matrices no admiten algunas operaciones matemáticas que son habituales en PDI, se requiere conversión de formato.
• De formato entero a doble precisión:
y=double(x)
Genera una matriz y que representa la imagen almacenada en x, para realizar operaciones.
• De formato doble precisión a entero:
x=uint8(y), o x=uint16(y)
Genera una matriz x en formato de enteros de 8 o 16 bits.
¡Importante! MatLab reconoce una matriz en uint8 o uint16 como una imagen en niveles de gris y automáticamente utiliza el
mapa correspondiente para representarla, es decir no se requiere el mapa para mostrar la imagen.
Introducción: Procesamiento de Imágenes con MatLab
Optativa: Introducción al Procesamiento Digital de Imágenes / Cursos de posgrado: Procesamiento Digital de Imágenes y Visión Artificial.Laboratorio de Procesamiento de Imágenes (LPI), Facultad de Ingeniería, ICyTE-UNMdP-CONICET.
Funciones básicas con imágenes:
Guardado: Función imwrite.
imwrite(x,map,‘nombre de imagen’,’ext’)
Guarda la matriz imagen x con el mapa de color map, con el nombre especificado y el formato dado por la extensión “ext”. Si x
es uint8 o uint16 y la imagen está en escala de grises, no se requerirá el mapa para guardar la imagen correctamente.
“CIRCUIT_NEGATIVO.BMP”