Está en la página 1de 16

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA


TRATAMEINTO DE IMÁGENES
2020- IV

TRATAMIENTO DE IMÁGENES
Paso 2 – Códigos.

Presentado por:

Alexander Rueda

Tutor
Sandra Milena Garcia

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
PERIODO ACADÉMICO 2020 – IV
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

CONTENIDO

IMPLEMENTACIÓN DE CODIGOS............................................................................3
CONCLUSIONES....................................................................................................10
BIBLIOGRAFIA........................................................................................................11
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

IMPLEMENTACIÓN DE CODIGOS

1. Explique cada línea de comando:

%%%%%%%%%%%%%%%%%
%Nombre: Alexander Rueda
%Año: 2020
%Periodo: IV
%Semestre: 7
clc % limpia todo en el command windows
clear all % elimina todas las variables guardadas en el workspace
close all % cierra todas las ventanas de figuras abiertas

comunicacion = imread('compu4.jpg'); % lee una imagen y la pasa a una


variable
figure=comunicacion;
Graycomunicacion = rgb2gray(comunicacion); %le da más precision a la
variable doub
figure; % crea una ventana para graficas
imshow(Graycomunicacion)% despliega la imagen en escala de grises
Graycomunicacion=im2double(Graycomunicacion);
figure;
imhist(Graycomunicacion);
comunicacion=im2double(comunicacion);
figure;
imshow(comunicacion)
umbral=0.6;% variable umbral segun la guia
bincomunicacion=im2bw(comunicacion,umbral); %binariza la imagen con un
umbral de cierto valor
bincomunicacion=~bincomunicacion;
figure; % crea una ventana para graficas
imshow(bincomunicacion);%despliega la imagen binarizada
numpixels=10000;
filtro1= bwareaopen(bincomunicacion, numpixels); %remueve objetos
conectados
%de una imagen binaria que tienen menos de cierto numero pixeles
figure; % crea una ventana para graficas
imshow(filtro1); %despliega la imagen final

a) ¿Qué hacen las funciones clc, clear all, clos all, im2bw y bwreaopen?

o clear all borra todas las variables


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

o close allcierra todas las ventanas

o clc limpia el comand window

o Im2bw este comando convierte a blanco y negro de acuerdo con el valor definido en la
variable umbral

o bwareaopen este comando remueve de la imagen todos los objetos un número de pixeles
menor que el definido por la variable numpixels.

b) Analice cada imagen obtenida en este ejercicio.

Imagen obtenida con la función imread, muestra la imagen original “compu4.jpg”.

Figura 1. Imagen original

La función rgb2gray muestra la imagen compu4.jpg en escala de grises.


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

Figura 2. Imagen binarizada.

La siguiente es el histograma
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

Figura 3. Imagen final con un umbral de 0.6 y numpixel de 10000


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

Figura 5. Imagen final con un umbral de 0.2 y numpixels de 25000


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

Figura 6. Imagen final con un umbral de 0.5 y numpixels de 500

Para esta actividad se hace uso del siguiente código para generar los ruidos de “sal y pimienta” y “gaussiano”,
además del filtro media y Gau
%%%%%%%%%%%%%%%%%
%Nombre: Alexander Rueda
%Año: 2020
%Periodo: IV
%Semestre: 7
clc
clear all
close all

imc=imread('compu4.jpg');
im=rgb2gray(imc);
fg = imnoise(im,'gaussian');
fs = imnoise(im,'salt & pepper',0.1);
h1 = fspecial('gaussian');
h2 = fspecial('average');
media1=imfilter(fg,h1);
media2=imfilter(fs,h2);
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

subplot(2,3,2),subimage(fg),title('ruido gaussiano');
subplot(2,3,5),subimage(fs),title('ruido sal y pimienta');
subplot(2,3,3),subimage(media1),title('Gaussiano');
subplot(2,3,6),subimage(media2),title('media');
subplot(2,3,1),subimage(imc),title('original');

original ruido gaussiano Gaussiano

50 50 50

100 100 100

150 150 150

200 200 200

250 250 250

300 300 300

350 350 350

400 400 400


50 100 150 200 250 300 350 400 450 50 100 150 200 250 300 350 400 450 50 100 150 200 250 300 350 400 450

ruido sal y pimienta media

50 50

100 100

150 150

200 200

250 250

300 300

350 350

400 400
50 100 150 200 250 300 350 400 450 50 100 150 200 250 300 350 400 450

Figura 7. Imágenes obtenidas

3. Desarrolle el siguiente código en el Command Window de Matlab. (Asegúrese de estar


trabajando en la carpeta que ya se ha creado).

a) Explique cada línea de comando.

%Eduar Manquillo
%%%%%%%%%%%%%%%%%
%Nombre: Alexander Rueda
%Año: 2020
%Periodo: IV
%Semestre: 7
clc % limpia todo en el command windows
clear all % elimina todas las variables guardadas en el workspace
close all % cierra todas las ventanas de figuras abiertas
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

comunicacion = imread('compu4.jpg'); % lee una imagen y la pasa a una


variable
figure; %crea para una figura nueva
imshow(comunicacion)
Graycomunicacion = rgb2gray(comunicacion); %convierte la variable de
formato rgb a escala de grises
figure;
imshow(Graycomunicacion); %muestra la imagen en escala de grises
BordesCanny = edge(Graycomunicacion,'Canny'); %encuentra los bordes con
la intensidad de la imagen
figure; %crea una nueva figura
imshow(BordesCanny) %muestra los bordes de la imagen original
“compu4.jpg” hallados con Canny
BordesSobel = edge(Graycomunicacion,'Sobel'); %encuentra los bordes con
la intensidad de la imagen
figure; %crea una figura nueva
imshow(BordesSobel) %muestra los los bordes de la imagen original
“compu4.jpg” hallados con Sobel

b) ¿Qué hacen las funciones canny y sobel?

canny: Encuentra los bordes buscando máximos locales en el gradiente de la imagen.


sobel: Encuentra los bordes usando la aproximación de Sobel a la derivada de la imagen.

c) Imágenes obtenidas.

Imagen original
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

En el código se puede especificar que método utilizar para la detección de los bordes estos son ‘Canny’ la
detección de bordes utilizando la máscara Canny predefinida en Matlab. Este método utiliza un filtro basado
en la primera derivada de un Kernel gaussiano G, donde luego permite discriminar los valores en que el
gradiente no es máximo local ‘Sobel’ realiza la detección de bordes utilizando la máscara Sobel predefinida
en Matlab por medio de la función edge. Este operador matricial especial que transforma una imagen en
escala de grises en una imagen binarizada con bordes resaltados

Figura 8. Detección de bordes canny


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

Figura 9.Deteccion de bordes sobel.

4. Desarrolle el siguiente código en el Command Window de Matlab.

a) Explique cada línea de código:

%%%%%%%%%%%%%%%%%
%Nombre: Alexander Rueda
%Año: 2020
%Periodo: IV
%Semestre: 7

se1 = strel('line',3,4); %Crea en este caso una línea plana


erosion1 = imerode(BordesCanny,se1); %Erosiona la imagen de bordes
figure; %crea una nueva figura
imshow(erosion1) %muestra los bordes hallados con Canny erosionados
se2 = strel('square',2); %Crea un elemento estructurante el cual es una
línea plana
erosion2 = imerode(BordesCanny,se2); %Erosiona la imagen de bordes
figure; %crea una nueva figura
imshow(erosion2) %muestra los bordes de la imagen original hallados con
Canny erosionados
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

b) ¿Qué diferencias encuentra entre el ejercicio a y b?:


En la erosión usando line se puede notar un poco más de cosas a diferencia de la erosión usando el
elemento estructurante square que solamente se puede ver algunos puntos sobre una imagen negra.

Figura 4. Imgenes obtenidas.

5. Teniendo en cuenta el código anterior, donde se utiliza la función morfológica de erosión, el


estudiante deberá investigar cómo implementar la función morfológica de “dilatación”, con
la dilatación en forma de cuadrado y tamaño 2 (‘suaqre’,2).
2. %%%%%%%%%%%%%%%%%%%%
3. %Eduar Manquillo
4. se=strel('square',2);
5. im_dilate=imdilate(BordesSobel,se);
6. figure(),imshow(BordesSobel);
7. figure(),imshow(im_dilate)
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

La función sobel muestra los bordes de la imagen usando el método de Sobel.

Figura 5. Figura obtenida usando el método sobel

La función imdilate muestra los bordes de la imagen con el método de Sobel dilatados con constante 2 como
dice la guia.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

Figura 6. Imagen obtenida con la funcion imdilate.

CONCLUSIONES
El desarrollo de este trabajo nos ha permitido apropiarnos del conocimiento y aplicarlo en experimentación de
través de software simulador. Las temáticas comprendidas, aprendidas y aplicadas se enlistan a continuación:

 Comprensión de algoritmos para detección de bordes


 Comprensión de código y algoritmos para funciones de reconstrucción morfológica.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
TRATAMEINTO DE IMÁGENES
2020- IV

BIBLIOGRAFIA

Dougherty, E. R. (1992). An introduction to morphological image processing. Washington: SPIE .


Escudero, A. A. (13 de Agosto de 2012). Imagen Digital. Obtenido de Umbralización local o adaptativa.:
http://digitimagen.blogspot.com.co/2012/08/umbralizacion-local-o-adaptativa.html
Espejo, I. L. (2017). Método de Otsu. Obtenido de (Segmentación por umbralización):
http://www.ilopez.es/proyectos/matematicas/Otsu.pptx

También podría gustarte