Está en la página 1de 22

TRATAMIENTO DE IMAGENES

PROCESAMIENTO DE IMAGENES

DIEGO ARMANDO GAONA


GRUPO: 208054_22

PAOLA ANDREA MATEUS


TUTORA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD


CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
INGENIERIA DE TELECOMUNIACIONES
BOGOTÁ
2019
Introducción
En el siguiente documento se realizan las actividades individuales

respecto a cada uno de los ejercicios implementando las funciones

solicitadas.
Objetivos

Identificar el concepto de cada una de las preguntas enunciadas.

Conocer y explorar las opciones de la aplicación y su desarrollo.


Implementación de códigos en software

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


(Asegúrese de estar trabajando en la carpeta que ya se ha
creado). Debe trabajar con la imagen que fue asignada y
enviada por su tutor en el Paso 1. Esta imagen la debe guardar
como “Enferma5”.

Nota1: Si no está trabajando en la carpeta donde se encuentra la


imagen guardada, al realizar el código le saldrá error.

Nota2: Para que el código sea válido, debe tener una línea con su
nombre.

Realizar el siguiente experimento modificando el código anterior.


Imagen umbral numpixels
1 0.6 5
2 0.65 10
3 0.55 4
4 0.6 2
5 0.7 10
 Explique cada línea de comando.
 ¿Qué hacen las funciones clc, clear all, clos all, im2bw y
bwreaopen?
 Analice cada imagen obtenida en este ejercicio.
 Indique cual es la combinación de umbral y de filtro que identifica
más del 80% del “Melanoma” en la imagen asignada (si el
estudiante encuentra otra combinación, debe indicarla y mostrar
la imagen resultante)

IMAGEN ASIGNADO.

‘ENFERMA 3’

Código.
% Diego Armando Gaona
clc
clear all
close all
Melanoma=imread('enferma3.jpg');
Melanoma=imread(Melanoma);
figure;
imshow(Melanoma);
umbral=0,5;
binMelanoma=im2bw(Melanoma,umbral);
figure;
imshow(binMelanoma);
numpixels=20;esta
filtro1=bwreaopen(binMelanoma,numpixels);
figure;
imshow(filtro1);

Explicación de las líneas.

Clc: Borra todas las entradas y salidas de la pantalla de la ventana


de comandos, brindándole una "pantalla limpia".
Clear: Elimina todas las variables del espacio de trabajo actual,
liberándolas de la memoria del sistema.
close all: Borra todas las figuras cuyos controladores no están ocultos
Melanoma= imread('Enferma3.jpg'): Lee la imagen del archivo
especificado por filename, infiriendo el formato del archivo a partir de
su contenido.
Melanoma= im2double(Melanoma): El comando im2double
permite convertir la imagen al doble de la precisión
Figure: Se hace llamado a un marco donde se mostrar la imagen.
imshow(Melanoma): Comando para mostrar la imagen.
umbral=0.5: Será el umbral seleccionado
binMelanoma=im2bw(Melanoma,umbral): Permite convertir la
imagen en escala de grises a una imagen binaria
numpixels=2: Establece el número de pixeles para mostrar la
imagen
filtro1=bwareaopen(binMelanoma,numpixels): Permite eliminar
algunos pixeles de la imagen en modo binario
imshow(filtro1): Comando para mostrar la imagen.

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

clc: sirve para borrar las ventanas abiertas de otros comanados


clearall: borrar todo.
closall: cierra todas las ventanas de la figuras y aplicaciones
im2bw: Muestra el umbral global
bwreaopen: elimina los componentes con menos pixeles de la
imagen menos 50

Analice cada imagen obtenida en este ejercicio.


% Diego Armando Gaona
clc
clear all
close all
Melanoma=imread('enferma3.jpg');
Melanoma=im2double(Melanoma);
figure;
imshow(Melanoma);
umbral=0.6;
binMelanoma=im2bw(Melanoma,umbral);
figure;
imshow(~binMelanoma);
numpixels=5;
filtro1=bwreaopen(~binMelanoma,numpixels);
figure;
imshow(filtro1);

ANALISIS: Se logra mostrar los melanomas de un color que resalta en


este caso el blanco sin embargo solo se pueden ver tres de los cuatros,
el que se encuentra en la parte izquierda desaparece.

% Diego Armando Gaona


clc
clear all
close all
Melanoma=imread('enferma3.jpg');
Melanoma=im2double(Melanoma);
figure;
imshow(Melanoma);
umbral=0.65;
binMelanoma=im2bw(Melanoma,umbral);
figure;
imshow(~binMelanoma);
numpixels=10;
filtro1=bwreaopen(~binMelanoma,numpixels);
figure;
imshow(filtro1);

ANALISIS: Se logran ver los cuatro melanomas, sin embargo el más


pequeño de la parte izquierda se ve de manera difuminada, lo cual en el
anterior no.

% Diego Armando Gaona


clc
clear all
close all
Melanoma=imread('enferma3.jpg');
Melanoma=im2double(Melanoma);
figure;
imshow(Melanoma);
umbral=0.55;
binMelanoma=im2bw(Melanoma,umbral);
figure;
imshow(~binMelanoma);
numpixels=4;
filtro1=bwreaopen(~binMelanoma,numpixels);
figure;
imshow(filtro1);
ANALISIS: En este se ven solamente los tres melanomas, sin embargo
no aparece el de la parte izquierda, cabe resaltar que los tres
melanomas visibles se ven en cierto grado más nítido, a diferencia del
primero.

% Diego Armando Gaona


clc
clear all
close all
Melanoma=imread('enferma3.jpg');
Melanoma=im2double(Melanoma);
figure;
imshow(Melanoma);
umbral=0.6;
binMelanoma=im2bw(Melanoma,umbral);
figure;
imshow(~binMelanoma);
numpixels=2;
filtro1=bwreaopen(~binMelanoma,numpixels);
figure;
imshow(filtro1);
ANALISIS: Se ven los tres melanomas, se pierda el izquierdo por ser de
menor tamaño y menor proporción.

% Diego Armando Gaona


clc
clear all
close all
Melanoma=imread('enferma3.jpg');
Melanoma=im2double(Melanoma);
figure;
imshow(Melanoma);
umbral=0.7;
binMelanoma=im2bw(Melanoma,umbral);
figure;
imshow(~binMelanoma);
numpixels=10;
filtro1=bwreaopen(~binMelanoma,numpixels);
figure;
imshow(filtro1);
ANALISIS: Se logran ver los cuatro melanomas incluyendo el pequeño,
viéndose de manera más nítida que las anteriores.

 Indique cual es la combinación de umbral y de filtro que


identifica más del 80% del “Melanoma” en la imagen
asignada (si el estudiante encuentra otra combinación,
debe indicarla y mostrar la imagen resultante)

Aunque en los umbrales: umbral=0.65; numpixels=10; y umbral=0.7;


numpixels=10; se ven todos los melanomas, en el Umbral
correspondiente a 0.7 y numpixels: 10 se logra ver mejor la nitidez y
forma

Selección: umbral=0.7; numpixels=10;

2. Cada estudiante debe averiguar cómo implementar el filtro para el


ruido “sal y pimienta” y el filtro para el ruido “Gaussiano”.
Posteriormente implementar el filtro correspondiente para la
imagen con melanoma que le ha sido asignada.
Nota: El código se debe adjuntar junto con las imágenes
resultantes
 El resultado debe ser de este estilo para el filtro de ruido sal y
pimienta

a) Imagen con ruido Sal y pimienta b) Imagen Original

 El resultado debe ser de este estilo para el filtro de ruido


gaussiano

a) Imagen con ruido Gaussiano b) Imagen Original

%Diego Armando Gaona


clear all
close all
Melanoma=imread('enferma3.jpg');
GrayMelanoma=rgb2gray(Melanoma);
imshow(GrayMelanoma)
Ruido1= imnoise(GrayMelanoma, 'salt & pepper' ,0.098);
imshow(GrayMelanoma)
figure;

Original Ruido Sal y pimienta

%Diego Armando Gaona


clear all
close all
Melanoma=imread('enferma3.jpg');
GrayMelanoma=rgb2gray(Melanoma);
imshow(GrayMelanoma)
Ruido1= imnoise(GrayMelanoma, 'salt & pepper' ,0.098);
Ruido2= imnoise(GrayMelanoma, 'gaussian');
imshow(GrayMelanoma)
figure;
subplot(1,2,1),imshow(Ruido1);
subplot(1,2,2),imshow(Ruido2);

Original Ruido Gaussiano


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).

Nota1: Si no está trabajando en la carpeta donde se encuentra la


imagen guardada, al realizar el código le saldrá error.
Nota2: Para que el código sea válido, debe tener una línea con su
nombre.

 Explique cada línea de comando.

clc
clear all
close all
% DIEGO ARMANDO GAONA

Melanoma=imread('Enferma3.jpg');

figure;
imshow(Melanoma)
GrayMelanoma=rgb2gray(Melanoma);
figure;
imshow(GrayMelanoma)
BordesCanny=edge(GrayMelanoma,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(GrayMelanoma,'Sobel');
figure;
imshow(BordesSobel)

Explicación:

Clc: Borra todas las entradas y salidas de la pantalla de la ventana de


comandos, brindándole una "pantalla limpia".
Clear: Elimina todas las variables del espacio de trabajo actual,
liberándolas de la memoria del sistema.
close all: Borra todas las figuras cuyos controladores no están ocultos
Melanoma=imread('Enferma5.jpg'); Lee la imagen del archivo
especificado por filename, infiriendo el formato del archivo a partir de
su contenido.
figure; Se hace llamado a un marco donde se mostrar la imagen.
imshow(Melanoma): Comando para mostrar la imagen.
GrayMelanoma=rgb2gray(Melanoma); Convierte la imagen
truecolor RGB: en la imagen de intensidad de escala de grises I. La
función rgb2gray convierte las imágenes RGB en escala de grises
eliminando la información de matiz y saturación mientras conserva la
luminancia.
BordesCanny=edge(GrayMelanoma,'Canny'); En esta línea
Canny usa dos umbrales para detectar los bordes fuertes y débiles.
Incluye los bordes débiles en la salida solo si están conectados a
bordes fuertes. Como resultado, el método es más robusto al ruido y
más propenso a detectar bordes débiles verdaderos
BordesSobel=edge(GrayMelanoma,'Sobel'); En esta línea
Sobel es un algoritmo de detección de bordes popular pero simple. En
este algoritmo, se realiza una operación de gradiente espacial 2-D en
una imagen en escala de grises. Esta operación enfatiza las regiones
de alta frecuencia espacial que corresponde a los bordes.

 ¿Qué hacen las funciones canny y sobel?


Canny: En esta línea Canny usa dos umbrales para detectar los
bordes fuertes y débiles. Incluye los bordes débiles en la salida solo
si están conectados a bordes fuertes. Como resultado, el método es
más robusto al ruido y más propenso a detectar bordes débiles
verdaderos

Sobel: En esta línea Sobel es un algoritmo de detección de bordes


popular pero simple. En este algoritmo, se realiza una operación de
gradiente espacial 2-D en una imagen en escala de grises. Esta
operación enfatiza las regiones de alta frecuencia espacial que
corresponde a los bordes.

 Analice cada imagen obtenida en este ejercicio.

Imagen canny Imagen sobel

La imagen canny tiene más bordes resaltados que la sobel la sobel para que se
vea mejor tiene que tener un fondo blanco.

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


(Asegúrese de estar trabajando en la carpeta que ya se ha
creado).
Nota: Si no está trabajando en la carpeta donde se encuentra la
imagen guardada, al realizar el código le saldrá error.

Nota2: Para que el código sea válido, debe tener una línea con su
nombre.

Este código necesita el código del ejercicio 3 para poder ser ejecutado.

a.

b.

 Explique cada línea de comando.

A
se1=strel('line',3,4);
Este comando crea un elemento estructurador lineal que es
simétrico respecto a se1.
erosion1=imerode(borde Realiza múltiples erosiones de la imagen de entrada, usando
scanny,se1); cada elemento estructurador en Se1 sucesivamente.
figure; Se hace llamado a un marco donde se mostrar la imagen.
imshow(erosion1) Comando para mostrar la imagen.

B
se2=strel('square',2); En esta línea de comando strel toma parámetros adicionales.
erosion2=imerode(bord
escanny,se2); ilustra una apertura morfológica
figure; Se hace llamado a un marco donde se mostrar la imagen.
imshow(erosion2) Comando para mostrar la imagen.

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

Ejercicio A: Tiene una calidad Baja

Ejercicio B: Aparecen solo puntos blancos

 Analice cada imagen obtenida en este ejercicio.

2.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).

Resultados:

clc
clear all
close all
% Miguel Angel Forero

Melanoma=imread('Enferma3.jpg');

figure;
imshow(Melanoma)
GrayMelanoma=rgb2gray(Melanoma);
figure;
imshow(GrayMelanoma)
BordesCanny=edge(GrayMelanoma,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(GrayMelanoma,'Sobel');
figure;
se2=strel('square',2);
se2=imdilate(BordesCanny,se2);
imshow(BordesCanny)
figure, imshow(se2);
BIBLIOGRAFIA.

 Análisis de técnicas de binarización basadas en histogramas 2D,


tomado de : Forero, Manuel G., Merchán, M. Camila, Murillo Camilo A.
Análisis de técnicas de binarización basadas en histogramas 2D– Rev.
Ingeniería: Ciencia, Tecnología e Innovación VOL 3/N° 2 – ISSN 2313-
1926/Setiembre 2016

 Filtros lineales, tomado de:http://alojamientos.us.es/gtocoma/pid/tema3-


1.pdf

 Reducción del ruido en una imagen digital,tomado


de:https://docplayer.es/11449171-Reduccion-del-ruido-en-una-imagen-
digital.html

 Técnicas de análisis de imagen: Aplicaciones en Biología, tomado de :


https://books.google.com.co/books?
id=Mi9UrJQCKoEC&pg=PA145&lpg=PA145&dq=filtros+de+suavizado&s
ource=bl&ots=sSw6j3TnAm&sig=ACfU3U2TY5YlNyLop6OyA0TVXdazV
hOqQA&hl=es&sa=X&ved=2ahUKEwjLhZO75-
LkAhXMxlkKHZhwDHY4ChDoATAKegQICRAB#v=onepage&q=filtros
%20de%20suavizado&f=false

 Diseño De Filtros Para El Procesado De Imágenes Basados En Teoría


De Grafos, tomado
de :https://riunet.upv.es/bitstream/handle/10251/73099/TFM_Cristina_P
%C3%A9rez_Benito.pdf?sequence=1
 Procesamiento morfológico , tomado de :
http://www.elai.upm.es/webantigua/spain/Asignaturas/Robotica/ApuntesVA/cap6VA
ProcMorf.pdf

También podría gustarte