CONVOLUCIÓN Y FUNCIONES DE TRANSFORMACIÓN

Documentos relacionados
Que el estudiante sepa aplicar las principales técnicas que sirven para resaltar características en imágenes

Detección de bordes en una imagen.

Procesamiento de imágenes con MATLAB

1. Manipulación simple de imágenes

Compresión de Vídeo. Juan A. Michell Mar=n Gustavo A. Ruiz Robredo. Tema 1.1. Imagen digital. Departamento de Electrónica y Computadores

Segmentación de imágenes. Procesamiento de imágenes biomédicas Curso 2011

Introducción a Matlab. Ing. Laura López López

RecAM. Reconocimiento Automático de Matrículas

Preguntas tema 4: MORFOLOGÍA

TAREA N 3 OPERADORES DE DETECCIÓN DE BORDES

Filtrado de imágenes usando hardware dedicado

PRÁCTICA 1. Grupo de Visión Artificial. David García Pérez

Segmentación Basada en Bordes

Introducción a las imágenes digitales. Segunda parte

Laboratorio de Procesamiento de Imágenes Curso 2010/11

Ingeniería Superior de Informática

Laboratorio de Procesamiento Digital de Voz Practica 1. INTRODUCCION DE MATLAB Y MANEJO DE ARCHIVOS DE VOZ

8 PROCESAMIENTO DIGITAL DE IMÁGENES USANDO MATLAB & SIMULINK RA-MA

Introducción a Matlab.

Reducción del ruido en una imagen digital.

UNIVERSIDAD DE VIGO. PROGRAMA DE DOCTORADO Ingeniería del Software basada en componentes reutilizables, aplicaciones en Interfaces Hombre-Máquina


Introducción al Procesamiento de Imágenes con Matlab 1era Parte

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Fundamentos de la Visión Artificial. Prof. Dr. Francisco Gómez Rodríguez Prof. Manuel J. Domínguez Morales 1

Taller No 1. Laboratorio Estadística con Matlab. Estadística Descriptiva - Análisis exploratorio de datos con Matlab

Práctica 2 - Procesamiento de Imágenes

TRATAMIENTO DEL RUIDO

Manipulación del Contraste

Guía de Laboratorio. MatLab R2009b & Octave. Prof.: Ulises Román C FISI-UNMSM

Laboratorio de Visión para Robots. Práctica 2

Introducción a MatLab y Tollbox Image Processing

Qué es una imágen digital?

19. En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se reparte conforme a la sig.

Filtrado de Imágenes y Detección de Orillas Utilizando un Filtro Promediador Móvil Multipunto Unidimensional

5ª Práctica. Matlab página 1

Procesamiento Digital de Imágenes

Introducción a la Visión por Computadora

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 14

Aplicaciones del Procesado de Imagen

Un Programa Interactivo para la Enseñanza de Algoritmos de Procesamiento Digital de Imágenes

UNIVERSIDAD DE VIGO. PROGRAMA DE DOCTORADO Ingeniería del Software basada en componentes reutilizables, aplicaciones en Interfaces Hombre-Máquina

Tema 5: Morfología. Segunda parte

MATLAB: Introducción al procesamiento de imágenes

PRÁCTICAS DE REGULACIÓN AUTOMÁTICA

USO DE LA FÓRMULA CUADRÁTICA y 9.1.3

SISTEMA DE VISION ARTIFICIAL PARA RECONOCIMIENTO DE OBJETOS APLICADO A UN BRAZO ROBÓTICO

EXTRACCION DE CARACTERISITCAS Y COMPARACION DE UNA HUELLA DIGITAL INTEGRANTES

1.- Sistemas Numéricos 2.- Diferencia entre señal analógica y Digital 3.- Postulados básicos del Algebra de Boole

MAT08-13-CALCULA - La calculadora ClassPad 300 como recurso didáctico en la enseñanza de las matemáticas

Series aritméticas. ó La suma de los primeros n términos en una serie se representa por S n. . Por ejemplo: S 6

Calibración de los Medidores de Radioactividad GAMMA-SCOUT

Procesamiento Morfológico de Imágenes

Número, algoritmo y errores

Práctica 6. Tratamiento de imágenes mediante Matlab

Tema 4:Segmentación de imágenes

Sistemas de Sensación Segmentación, Reconocimiento y Clasificación de Objetos. CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides

[20380] Visió per Computador Prueba 2 (2013) Teoria (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada)

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Reconocimiento automático a través de visión artificial, correlación estadística y Matlab aplicado a las matrículas de vehículos

CAPÍTULO 3: PORCIONES Y NÚMEROS ENTEROS

CENTRO UNIVERSITARIO MONTEJO A.C. SECUNDARIA Temario Matemáticas 1

TRATAMIENTO DIGITAL DE LA SEÑAL Tratamiento digital de imágenes

Laboratorio 1 Procesamiento Digital de Imágenes

PRÁCTICA 4: IDENTIFICACIÓN Y CONTROL DE UN SERVOMECANISMO DE POSICIÓN CURSO 2007/2008

Introducción a Matlab

La parábola es el lugar geométrico de los puntos del plano que equidistan de un punto fijo llamado foco y de una recta fija llamada directriz.

Curso de Procesamiento Digital de Imágenes

Capítulo 4 Exploración del ambiente.

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL

CLASIFICACIÓN DE IMÁGENES

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

Imágenes y gráficas en MATLAB

EJEMPLOS DE PREGUNTAS Y ORIENTACIONES GENERALES SEGUNDO CICLO DE EDUCACIÓN MEDIA PRUEBA MATEMÁTICA 2013

Proyecto: técnicas aplicadas en el dibujo

Sucesiones. Concepto de sucesión. Determinación de una sucesión: Por el término general. Por una ley de recurrencia. a 1, a 2, a 3,...

Procesamiento de Imágenes

Capítulo III Procesamiento Digital de Imágenes

Actividad 8: Lectura Capítulo 5

Geometría Plana y Trigonometría (SEP-INAOE)

PRÁCTICA: 3 FILTRADO Y ANALISIS

SESIÓN 14 DERIVADAS SUCESIVAS DE UNA FUNCION, DE MÁXIMOS Y MÍNIMOS Y LA CONCAVIDAD DE UNA CURVA APLICANDO EL CRITERIO DE LA SEGUNDA DERIVADA

Visión Artificial: Análisis Teórico del Tratamiento Digital de Imágenes Para su aplicación en la identificación de objetos.

4.2 Números primos grandes. MATE 3041 Profa. Milena R. Salcedo Villanueva

Instituto de Matemática. Agosto de ) Encuentre experimentalmente los siguientes valores de su calculadora:

Fundamentos de Procesamiento de Imágenes

Señales: Tiempo y Frecuencia PRÁCTICA 1

Guía práctica de estudio 06: Lenguaje binario

Tranformaciones de Funciones

Transcripción:

INSTITUTO NACIONAL DE ASTROFÍSICA, ÓPTICA Y ELECTRÓNICA COORDINACIÓN DE ELECTRÓNICA PROCESAMIENTO DIGITAL DE IMÁGENES CONVOLUCIÓN Y FUNCIONES DE TRANSFORMACIÓN PRESENTA: RUBÉN FRANCISCO ALFONSO LÓPEZ 3 DE FEBRERO DEL 2009

1. Obtenga con MATLAB una imagen de 512X512 pixels en niveles de gris. Para llevar a cabo el primer paso, se uso una imagen de un cuadrado con dimensiones de 1019x767. Fig. 1. Imagen de 1019x767 pixels. Lo que se hizo en Matlab fue lo siguiente: g=imread('cuadrado.bmp'); %Lee la imagen y la almacena en 'g'. whos g %Tamaño de la imagen 'g'. newg=g(1:512,1:512); %Obtiene la nueva imagen y la almacena en 'newg'. whos newg %Tamaño de la nueva imagen 'newg'. imshow (g); figure, imshow(newg); imwrite(newg, 'cuad.png'); %Muestra ambas imagenes %para compararlas. %Guarda 'newg' en el directorio de MATLAB.

La imagen que se obtuvo como resultado se muestra a continuación: Fig. 2. Imagen de 512x512. (La imagen no está a la misma escala de la Fig. 1). 2. Realice al menos cinco transformaciones punto a punto s=t(r), analizando en cada caso el histograma de la imagen resultante. (Binarización, transformaciones gamma, aclaración, obscurecimiento, etc.) Para trabajar con las transformaciones punto a punto se utilizó el comando imadjust. Primero se llevaron a cabo unas transformaciones gamma, de la siguiente manera, los resultados con sus respectivos histogramas se aprecian en la figura 3 y 4: g=imread('cuad.png'); %Se lee la imagen g1=imadjust(g,[0 1],[0 1]); %Función gamma igual a 1 g2=imadjust(g,[0 1],[0 1], 0.3); %Función gamma menor a 1 g3=imadjust(g,[0 1],[0 1], 1.7); %Función gamma mayor a 1 subplot(2,2,1), imshow(g); %Grafica de imagen original subplot(2,2,2), imshow(g1); %Resultado de la función gamma igual a 1 subplot(2,2,3), imshow(g2); %Resultado de la función gamma menor a 1 subplot(2,2,4), imshow(g3); %Resultado de la función gamma mayor a 1 Con el mismo código pero cambiando los resultados a desplegar: subplot(2,2,1), imhist(g), title('histograma deimagen original'); subplot(2,2,2), imhist(g1), title('histograma de funcion gamma=1'); subplot(2,2,3), imhist(g2), title('histograma de funcion gamma<1'); subplot(2,2,4), imhist(g3), title('histograma de funcion gamma>1');

Fig. 3. Resultados de Funciones de transformación gamma. Fig. 4. Histogramas de las figuras de arriba.

Otra forma de obscurecer y aclarar las imágenes es como se muestra a continuación, los resultados se muestran en las figuras 5 y 6: g=imread('cuad.png'); %Se lee la imagen g1=imadjust(g,[0 1],[0 0.5]); g2=imadjust(g,[0 1],[0.5 1]); subplot(1,3,1), imshow(g); %Imagen original subplot(1,3,2), imshow(g1); %Imagen obscurecida subplot(1,3,3), imshow(g2); %Imagen aclarada Fig.5. Imagen original, obscurecida y aclarada. Moviendo la función de transformación. Los Histogramas correspondientes usando el comando imhist : Fig.6. Histogramas de las figuras de arriba.

Para invertir la imagen (obtener su negativo), se hizo lo siguiente: g=imread('cuad.png'); %Se lee la imagen g1=imadjust(g,[0 1],[1 0]); %Función de transformación subplot(2,2,1), imshow(g), title('imagen original'); subplot(2,2,2), imhist(g), title('histograma de imagen obscurecida'); subplot(2,2,3), imshow(g1), title('negativo de Imagen'); subplot(2,2,4), imhist(g1), title('histograma de Negativo'); Fig. 7. Negativo de la imagen y su histograma.

Para binarizar la imagen se utilizó el comando graythresh para calcular el umbral que se puede usar para convertir una imagen a blanco y negro. Para la imagen con la que se trabaja se obtuvo un umbral de 0.2196, con este valor se utilizo el comando im2bw, el resultado fue el siguiente. I=imread('cuad.png'); Um=graythresh(I) BW=im2bw(I,Um); subplot(1,2,1), imshow(bw), title('imagen Binarizada'); subplot(1,2,2), imhist(bw), title('histograma de Imagen Binarizada'); Fig. 8. Imagen binarizada y su respectivo histograma

Otro de los comandos que se usaron fue grayslice, de la forma siguiente: f=imread('cuad.png'); g=grayslice(f,45); g1=grayslice(f,100); subplot(2,2,1), imshow(g), title('imagen con grayslice=45'); subplot(2,2,3), imshow(g1), title('imagen con grayslice=100'); subplot(2,2,2), imhist(g), title('histograma con grayslice=45'); subplot(2,2,4), imhist(g1), title('histograma con grayslice=100'); Fig. 9. Imágenes e histograma para el comando grayslice.

3. Convolución. (Comando de matlab conv2 ) Obtenga la convolución de una imagen en niveles de gris con al menos cinco mascarillas de convolución, tratando en cada caso de anticipar el resultado. Por ejemplo las siguientes mascarillas (pueden ser otras). 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 A: f=[ 1 1 1 1 1 1 1 1 1 1; 1 0 0 0 0 0 0 0 0 1; 1 0 0 0 0 0 0 0 0 1; 1 0 0 1 1 1 1 0 0 1; 1 0 0 1 0 0 1 0 0 1; 1 0 0 1 0 0 1 0 0 1; 1 0 0 1 1 1 1 0 0 1; 1 0 0 0 0 0 0 0 0 1; 1 0 0 0 0 0 0 0 0 1; 1 1 1 1 1 1 1 1 1 1]; g=[ 1 0 0 0 0; 0 0 0 0 1]; h=conv2(f,g); subplot(1,2,1), imshow(f), title('imagen original'); subplot(1,2,2), imshow(h), title('resultado de convolución');

B: Con la mascarilla: g=[ 1 1 1; 1-8 1; 1 1 1]; C: Con la mascarilla: g=[ 1 1 1; 1 1 1; 1 1 1];

D: Con la mascarilla: g=[ 0 0 0; 0 0 0; 0 0 1]; E: Con la mascarilla: g=[ 1 1 1 1 1; 0 0 0 0 0];

4. Genere una imagen binaria geométrica sencilla de 512X512, por ejemplo una cruz, o un círculo, y obtenga su convolución bidimensional con al menos cinco mascarillas distintas (pueden ser las mismas del punto anterior, tratando en cada caso de anticipar el resultado. A: clear all e=imread('circle.jpg'); f=im2bw(e); g=[ 1 0 0 0 0; 0 0 0 0 1]; h=conv2(double(f),g); subplot(1,2,1), imshow(f), title('imagen original'); subplot(1,2,2), imshow(h), title('resultado de convolución');

B: Con la mascarilla: g=[ 1 1 1 1 1; 0 0 0 0 0]; C: Con la mascarilla: g=[ 1 1 1; 1-8 1; 1 1 1];

D: Con la mascarilla: g=[ 0 0 1; 0 0 0; 0 0 0]; E: Con la mascarilla: g=[ 0 0 0; 0 0 0; 0 0 0];

5. Obtenga la imagen de bordes (edge detection) de alguna imagen en niveles de gris, a través de la convolución con el operador Laplaciano o algun operador Sobel, y posterior binarización, ajustando adecuadamente el umbral de binarización. Operador Laplaciano: clear all e=imread('circulo.bmp'); f=rgb2gray(e); g=[ 0 1 0; 1-4 1; 0 1 0]; g=[ 0 1 0; 1-4 1; 0 1 0]; h=conv2(double(f),g); subplot(1,2,1), imshow(f), title('imagen original'); subplot(1,2,2), imshow(h), title('resultado de convolución'); Binarizando la imagen usando un umbral adecuado: clear all e=imread('circulo.bmp'); f=rgb2gray(e); um=graythresh(f) %umbral de 0.5020 r=im2bw(f,um);

g=[ 0 1 0; 1-4 1; 0 1 0]; h=conv2(double(r),g); subplot(1,2,1), imshow(r), title('imagen original'); subplot(1,2,2), imshow(h), title('resultado de convolución'); 6. Realice mejora de contraste en una imagen usando la ecuación g( x, y) f ( x, y) 2 f ( x, y) clear all f=imread('llanta.bmp'); um=graythresh(f); f2=im2bw(f,um); f3=f2(1:512,1:512); g=[ 0 1 0; 1-4 1; 0 1 0]; h=conv2(double(f3),g); h2=h(1:512, 1:512); h3=h2+double(f3); subplot(2,2,1), imshow(f3), title('imagen original'); subplot(2,2,2), imshow(h), title('resultado de la convolución'); subplot(2,2,3), imshow(h2), title('imagen ajustada'); subplot(2,2,4), imshow(h3), title('resultado de la suma');

USO DE OPERADOR AND (&): f=imread('llanta.bmp'); um=graythresh(f); f2=im2bw(f,um); f3=f2(1:512,1:512); g=[ 0 1 0; 1-4 1; 0 1 0]; h=conv2(double(f3),g); h2=h(1:512, 1:512); r=double(f3) & h2; subplot(2,2,1:2), imshow(f3), title('imagen original'); subplot(2,2,3), imshow(h), title('resultado de la convolución'); subplot(2,2,4), imshow(r), title('resultado de operador &');

r=~xor(double(f3), h2);