introducción: procesamiento de imágenes con matlab

19
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:

Upload: others

Post on 10-Jul-2022

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción: Procesamiento de Imágenes con MatLab

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:

Page 2: Introducción: Procesamiento de Imágenes con 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:

Page 3: Introducción: Procesamiento de Imágenes con 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:

Page 4: Introducción: Procesamiento de Imágenes con 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:

Page 5: Introducción: Procesamiento de Imágenes con 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:

Page 6: Introducción: Procesamiento de Imágenes con 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]).

Page 7: Introducción: Procesamiento de Imágenes con 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:

• 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 “~”.

Page 8: Introducción: Procesamiento de Imágenes con MatLab

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

Page 9: Introducción: Procesamiento de Imágenes con MatLab

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

Page 10: Introducción: Procesamiento de Imágenes con MatLab

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

Page 11: Introducción: Procesamiento de Imágenes con MatLab

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

Page 12: Introducción: Procesamiento de Imágenes con MatLab

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.

Page 13: Introducción: Procesamiento de Imágenes con MatLab

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

Page 14: Introducción: Procesamiento de Imágenes con MatLab

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.

Page 15: Introducción: Procesamiento de Imágenes con MatLab

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.

Page 16: Introducción: Procesamiento de Imágenes con MatLab

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

Page 17: Introducción: Procesamiento de Imágenes con MatLab

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.

Page 18: Introducción: Procesamiento de Imágenes con MatLab

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.

Page 19: Introducción: Procesamiento de Imágenes con MatLab

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”