Sunteți pe pagina 1din 17

1

Unidad 1: Paso2- Segmentación de Imágenes


Jairo Andres Quintero Merchan CC: 1030561944; Fabio Ortiz Cordoba CC:
80853643

III. DESARROLLO DE LAS PREGUNTAS
Resumen – En el presente informe se da a conocer los
diferentes conceptos utilizados para una mejor comprensión al
analizar una imagen, los cuales son de vital importancia para el Aporte realizado por el estudiante Jairo Andres Quintero.
software Matlab, en donde se encuentra cada solución a la
imagen asignada según los participantes en el presente
documento. ¿Qué es moralización o binarización?

Palabras claves – Bancarización, gaussiano Otsu, umbralización. Binarización es una técnica que se utiliza en tratamiento de
imágenes para convertir una imagen que se encuentra en
escalas de grises a una forma binaria en donde los colores son
I. INTRODUCCION blanco y negro. Este método utiliza un valor llamado umbral
una comparación de la siguiente manera: si el valor del pixel

E n este trabajo se van a responder a las preguntas es mayor al valor del umbral
entonces el pixel lo pintamos de color blanco, pero si el pixel
propuestas sobre bancarización, umbralización, Umbral Otsu,
reducción de ruido, entre otras. Al responder estas preguntas no supera el valor umbral
se van a definir una serie de conceptos que son necesarios para entonces el pixel pinta de negro.(“Imagen binaria,” n.d.)
entender los ejercicios que se van a realizar posteriormente.
Luego se realizan una serie de códigos en Matlab donde ¿Cuál es la diferencia entre umbralización global y local?
utilizamos el tratamiento de imágenes y las técnicas de esta ¿Cuál es su implementación en Matlab?
línea de estudio para seguir con el proyecto final de la
detección del Melanoma en la piel. La diferencia entre estos dos métodos simplemente varia en el
área de imagen que abarca cada uno de los métodos. En el
método de Umbralización Global se aplica a toda la imagen.
La Umbralización Local se aplica solo a una zona de la
II. OBJETIVOS imagen. Esto se utiliza para realizar binarización global o
binarización local para mejorar la detección de las formas que
 Implementar las técnicas de tratamiento de imágenes necesitamos.
para la detección del melanoma
 Investigar sobre los conceptos de tratamiento de ¿Qué es umbral de Otsu?
imágenes para responder las preguntas propuestas.
 Analizar los resultados del tratamiento de imágenes El valor Umbral Otsu es un valor que se obtiene de un
realizados en el programa Matlab. algoritmo y se utiliza para capturar la figura que necesitamos
de la imagen analizada. Con ayuda del valor umbral y este
método es posible obtener todos los pixeles que conforman el
objeto que se necesita analizar de cualquier imagen.
Cuando abra Formato de artículo, seleccione el “Botón
Esquema” del menú “Ver” en la barra de menú (Ver | Botón ¿Qué es reducción de ruido en una imagen binaria ?
Esquema) que le permite ver las notas a pie de página.
Entonces teclee encima de las secciones de Formato de El ruido de una imagen binaria se puede identificar porque los
artículo o corte y pegue de otro documento y entonces use los valores de intensidad de un grupo de pixeles no son estables.
estilos. El menú desplegable de estilo está a la izquierda de la Entonces para reducir el ruido de la imagen se debe sacar el
Barra de Herramientas en la ventana de Word (por ejemplo, el promedio de los pixeles vecinos para estabilizar los valores de
estilo en este lugar del documento es “Texto” o “Text”). intensidad de los pixeles.
Resalte una sección que usted quiera diseñar con un cierto
¿Qué es filtro mediano y cómo se implementa en Matlab?

Este tipo de filtro se utiliza para mejorar la calidad de la


imagen. Para poder realizar este tipo de filtrado se debe

Documento recibido el 5 de octubre de 2019, por los estudiantes de la realizar un proceso en el cual se calcula la mediana de un
Universidad Nacional Abierta y a Distancia, de la materia Tratamiento de
Imágenes.
2

grupo vecinos de pixeles para poder pinar un pixel que tenga La reconstrucción morfológica se aplica para en el tratamiento
una intensidad diferente. de imágenes para reconstruir figuras. Esta técnica aplica los
Para implementar este filtro en Matlab se utilizan las siguientes métodos:
siguientes líneas de código:
Script para implementar un filtro mediano Tipo de Figura
1- Imagen = imread(‘Enferma4.jpg’)
2- imagen_g = rgb2gray(imagen);
reconstrucción
3- filtrada2 = medfilt2(imagen_g) Morfológica
Lineal
¿Para qué sirven los filtros de suavizado en una imagen?

Los filtros de suavizado se utilizan para reducir las variaciones


de intensidad que puedan existir en pixeles vecinos. La
finalidad de estos filtros es quitar todos los imperfectos que Cuadrada
pueda tener la imagen para mejorar calidad. Estos imperfectos
pueden venir por los diferentes tipos de ruido como el
“gaussiano” y “sal y pimienta”.

¿Cuál es la diferencia entre ruido gaussiano y ruido de sal y


pimienta?
Cruz
Ruido “Gaussiano”
Este tipo de ruido es característico por dar valores aleatorios
de ruido a la imagen.
Fuente: (Mateus, P. 2019)
Ruido “Sal y pimienta”
El ruido Sal y pimienta es un ruido que se caracteriza por que
los valores de ruidos solo tienen los valores 0 o 1 (en la Fuente: Cruz. Mateus, P. (2019)
imagen saldría como negro o blanco).
Fuente: (Mateus, P. 2019) ¿Qué tipos de funciones morfológicas existen y cómo
funcionan?
Explique diferentes técnicas de segmentación de imágenes.
Erosión
Técnica de segmentation Canny
 Obtener la gradiente en donde se tiene que calcular la La erosión es una función que consiste en aplicar la lógica
magnitud y orientación de cada pixel. AND entre los pixeles de una imagen para volver los
 En este segundo paso se realiza el adelgazamiento del contornos más pequeños.
ancho de los bordes La erosión se representa de la siguiente manera
 Se aplica una función de Histéresis que se basa en
dos umbrales. Esto se realiza para reducir la
Dilatación
posibilidad de contornos falsos.
La dilatación es una función que hace una lógica OR entre los
Técnica de segmentation Sobel
pixeles para lograr la dilatación de la imagen
 Esta técnica utiliza el operador Sobel el cual es un
La dilatación se representa de la siguiente manera:
operador diferencial discreto el cual calcula una
gradiente aproximada a la función de intensidad.
La función de erosión y la función de dilatación son utilizadas
Fuente: (Valverde-Rebaza, Jorge. (2007))
para suavizar los contornos de una imagen, expandir o
contraer los objetos y eliminar los objetos más pequeños de la
imagen que no son necesarios para el tratamiento de una
imagen.

¿Qué es reconstrucción morfológica?


3

Aporte realizado por el estudiante Fabio Ortiz


1. Definición de conceptos: estudiando el libro guía, el
estudiante investiga de manera individual y da
respuesta a las siguientes preguntas teóricas:

a. ¿Qué es umbralización o binarización?

La umbralización es uno de los métodos más


importantes de la segmentación de imágenes. Se
define el umbral como una función que convierte una
imagen con diferentes tonalidades en una imagen en
blanco y negro. La umbralización es una técnica de Fuente: Ortiz Zamora, F. G. (2002)
segmentación simple y eficiente que permite separar
los pixeles de una imagen en escala de grises en dos El umbral local o adaptativo.
categorías a partir de un valor umbral de intensidad.
Cuando el histograma de una imagen de la GEM-Foil
b. ¿Cuál es la diferencia entre umbralización global y tiene una distribución no bimodal debido a los
local? ¿Cuál es su implementación en Matlab? cambios de iluminación, como p.ej. en la figura 6, se
debe dividir la imagen en subimágenes para encontrar
Técnica de segmentación (partición de la imagen en un umbral apropiado para cada una de ellas [12].
áreas con significado) en imágenes con fondo Dichas sub-imágenes pueden ser de diferentes formas
uniforme y objetos a extraer y tamaños, lo que se define en el momento de
implementar el algoritmo para la determinación del
Umbral local puede ser determinado dividiendo una
umbral local. De esta forma, no hay un único umbral
imagen en subimágenes y calculando los umbrales de
para toda la imagen sino múltiples umbrales, uno para
dichas subimágenes, o examinándolas intensidades de
la imagen en los alrededores de cada píxel. cada sub-imagen.

Umbral global El umbral fijo o global, T, es aquel que


es único sobre toda la imagen.

Su implementación en Matlab es con el fin de analizar


una imagen, en el ámbito profesional, se utiliza por
ejemplo en las fotos multas, se aplica la binarizacion,
teniendo en cuenta que debo tener un umbral que es un
valor entre 0 y 255.

El umbral fijo o global, T, es aquel que es único


sobre toda la imagen

Fuente: Ortiz Zamora, F. G. (2002)

Donde es la intensidad y to y t1 son los dos c. ¿Qué es umbral de Otsu?


posibles niveles de gris del pixel umbralizado.
Cuando el valor to = 0 y el valor ti = 1 se dice que la El método de Otsu es uno de los más populares en la
imagen se ha binarizado. Esta estrategia puede literatura [17]. Este método considera que el
resultar muy útil cuando se tiene una iluminación histograma es bimodal y se itera a lo largo del
homogénea sobre toda la imagen y un histograma histograma calculando para cada valor estimado
bimodal, como el que se muestra en la imagen posible de umbral la varianza de pesos dentro de cada
clase o modo. El umbral óptimo se logra cuando la
varianza entre clases genera un valor mínimo. El
cálculo del umbral por el método de Otsu se realizó
aplicando la función graythresh () de MATLAB®.

d. ¿Qué es reducción de ruido en una imagen binaria?


4

circuitos electrónicos o ruido de los sensores por falta


La reducción de ruido, es una de las funciones de iluminación y/o altas temperaturas. La intensidad
básicas que todo procesador de imagen debe de todos los píxeles se ve afectada.
implementar. Sin embargo, debido a su naturaleza, no
es una tarea precisamente sencilla, ya que muchas
veces es imposible discernir que es ruido dentro de la
propia imagen.

La reducción de ruido suele aplicarse a nivel


de software mediante los algoritmos correspondientes
de NR (Noise Reduction). Sin embargo, últimamente
se están realizando muchos esfuerzos para conseguir
sensores que capten el menor ruido posible en sus
fotodiodos, de modo que cuando los datos sean leídos
por el procesador de imagen, estos sean más Fuente: Ortiz Zamora, F. G. (2002)
«limpios»

e. ¿Qué es filtro mediano y cómo se implementa en


Matlab?

Dada una imagen f(i,j), el procedimiento consiste en


generar una nueva imagen g(i,j) cuya intensidad para
cada píxel se obtiene promediando los valores de
intensidad de los píxeles f(i,j) incluidos en un entorno
de vecindad predefinido.
Fuente: Ortiz Zamora, F. G. (2002)
En Matlab la función que me permite realizar un
filtro de la media será: imfilter
filtro ruido de sal y pimienta
Esta función tiene la siguiente estructura: B = el filtro Ruido Gaussiano
imfilter(A,H,option1,option2,...)

f. ¿Para qué sirven los filtros de suavizado en una h. Explique diferentes técnicas de segmentación de
imagen? imágenes

Tienen por objeto reducir el ruido y/o efectos Umbralización La umbralización es uno de los
espurios que pueden presentarse en una imagen a algoritmos de segmentación más sencillos. La idea es
consecuencia del proceso de captura, digitalización y que muchas veces se representan objetos sobre una
transmisión. Su utilización es normalmente necesaria superficie del mismo color [FuVi]. Esta técnica
antes de la aplicación de un detector de bordes. consiste en filtrar los píxeles que forman la imagen
de forma que si superan un umbral se pondrán a 0. En
Existen distintos tipos de algoritmos que permiten la caso contrario el se pondrán a 1 o no se modificará.
reducción del ruido. En esta práctica veremos Locales - agrupan pixels en base a sus atributos
algunos filtros lineales (convolución de una imagen
con una máscara predefinida) y no lineales Detección de discontinuidades Sabemos que
(operación no lineal con los píxeles del entorno de representamos una imagen como una matriz. En el
vecindad). caso de una imagen de grises cada píxel se
representara mediante un elemento de la matriz.
g. ¿Cuál es la diferencia entre ruido gaussiano y ruido Podemos detectar los píxeles que tienen distinto valor
de sal y pimienta? de los que le rodean aplicando distintas máscaras:

El filtro ruido de sal y pimienta Se produce Crecimiento de regiones El Crecimiento de Regiones


normalmente en la cuantificación que se realiza en el consiste en elegir una serie de píxeles iniciales que
proceso de digitalización y el filtro Ruido Gaussiano llamaremos puntos semilla. Después aplicaremos una
(o normal) Modela el ruido producido por los
5

función a sus vecinos y lo asociaremos a ellos en el Procesamiento morfológico en niveles de grises Las
caso de que la verifiquen. operaciones de erosión y dilatación son crecientes,
respectan el orden presente en la estructura del
Watershed Una forma amable de presentar este conjunto.
método de segmentación es compararla imagen con
un terreno en el que la intensidad de cada píxel indica Apertura y cierre Usando los operadores elementales
la altura del terreno en ese punto. La segmentación se de erosión y dilatación se pueden diseñar operaciones
de realce de las formas de los objetos.
hace simulando una lluvia sobre la imagen; cuando
dos charcos se unen para formar uno más grande, se
Gradiente morfológico El primer residuo que se
marcan como bordes los píxeles en los cuales se puede definir en Morfología es el gradiente. Debida a
unieron los dos charcos. las relaciones de extensión y antiextensión definidas
sobre los operadores morfológicos se establece el
Transformada de Fourier Una señal puede ser concepto de gradiente morfológico.
definida de dos formas: en el dominio de la
frecuencia o en el dominio del espacio (para Top-hat Las transformaciones Top-hat consisten en
procesamiento de imagen). descubrir aquellas estructuras de la imagen que han
sido eliminadas en el filtrado de apertura o cierre.
Segmentación piramidal Hemos visto que es posible
obtener características de los objetos a diferentes
escalas utilizando filtros para suavizar. Una
herramienta poderosa para manipular información de
escala son las llamadas pirámides de imágenes.
IV. IMPLEMENTACIÓN DE CÓDIGOS EN MATLAB
Transformada de Hough Los puntos se ligan siempre
y cuando se determine si caen o no en una curva de
Aporte realizado por el estudiante Jairo Andres Quintero.
forma específica. El problema es encontrar
subconjuntos de n puntos que caigan en líneas rectas

i. ¿Qué es reconstrucción morfológica? Ejercicio 1

Es una técnica de procesamiento no lineal de la señal,


caracterizada en realzar la geometría y forma de los
objetos. Su fundamento matemático se basa en la
teoría de conjunto. Aunque en un principio se
aplicará sobre las imágenes binarizadas, luego se
extenderá a las imágenes en niveles de grises.

j. ¿Qué tipos de funciones morfológicas


existen y cómo funcionan?

Erosión binaria La transformación de la


erosión es el resultado de comprobar si el
elemento estructurante B está
completamente incluido dentro del conjunto
X. Explicación Código

%Codigo Realizado por: Jairo Andres Quintero Merchan


Dilatación binaria La dilatación es la
transformación dual a la erosión. El clc % Se limpia la ventana de comandos.
resultado de la dilatación es el conjunto de clear all % Se limpia las variables.
elementos tal que al menos algún elemento close all % Se cierran todas las ventanas de graficos
Melanoma = imread('Enferma4.jpg');% Se carga la imagen a
del conjunto estructurante B está contenido matlab y la guardamos en la variable melanoma.
en el conjunto X
6

Melanoma = im2double(Melanoma);% Se pasa la imagen


Melanoma a formato binario osea que cada pixel tiene un
valor en el rango [0, 1].

figure; %Se crea una figura para mostrar a ‘Melanoma’.


imshow(Melanoma)% Se carga la imagen ‘Melanoma’ a la
figura

umbral=0.7; % Se crea una variable llamada “Umbral” y


le damos el valor de 0.5
binMelanoma=im2bw(Melanoma,umbral);%

figure; % Se crea una figura para mostrar a


‘binMelanom’.
imshow(~binMelanoma)% Se carga la imagen ‘binMelanom’
a la figura
Con esta configuración se obtienen los dos objetos de la
numpixels=10; % Se crea una variable “numpixels” y le
imagen mas grandes y se eliminan los otros dos mas pequeños.
damos el valor de 20
Filtro1=bwareaopen(~binMelanoma, numpixels);%
Binarización con las variables
figure; % Se crea una figura para mostrar a ‘Filtro1’  umbral = 0.65
imshow(Filtro1)% Se carga la imagen ‘Filtro1’ a la figura  numpixels = 10

El resultado del código es el siguiente:

Binarización con las variables

 umbral = 0.6

 numpixels = 5
7

Con esta configuración se obtiene 3 objetos de la imagen, y se


elimina el objeto mas pequeño.

Binarización con las variables


 umbral = 0.55
 numpixels = 4
Con estas configuraciones se obtienen los dos objetos más
grandes de la imagen dejando por fuera los dos mas pequeños.

Binarización con las variables

 umbral = 0.7
 numpixels = 10

Con esta configuración de variables solo se obtiene el objeto


más grande de la imagen

Binarización con las variables

 umbral = 0.6
 numpixels = 2
8

Selección de los parámetros


clc % Se limpia la ventana de comandos.
La combinación de Umbral y de filtro que mejor se ajusta a la clear all % Se limpia las variables.
imagen son: close all % Se cierran todas las ventanas de graficos
 umbral = 0.5
 numpixels = 20 imagen=imread('Enferma4.jpg');% Se carga la imagen a
matlab y la guardamos en la variable im.
Descripción de las funciones de matlab imagen_gray = rgb2gray(imagen);% Se toma la imagen en
RGB y la pasa a escala de grises

Funciones en matlab imagenruidoSal = imnoise(imagen_gray,'salt & pepper',0.1);%


Aplicamos Ruido Sal y pimienta
Comando Descripción
filtro = fspecial('average');% Devuelve una matriz
Clc Esta línea de código limpia la
multidimensional para realizar el filtrado de tipo “Sal y
ventana de comandos.
pimienta”. este valor es utilizado para hallar realizar un filtro
Clear all Este código limpia todas las
con el comando “imfilter”.
variables creadas anteriormente. Por
filtrada1 = imfilter(imagenruidoSal,filtro)% Se aplica el filtro
ejemplo si la variable “a” tiene
a la matriz imagen_g con el filtro multidimensinal que
asignado el valor 10, entonces al
realizamos anteriormente “filtro”.
ejecutar el comando clear all el
valor de la variable “a” se elimina.
figure; % Crea una figura en donde vamos a cargar una
Close all Este código cierra todas las ventanas
imagen
de figuras de matlab que estén
imshow(filtrada1)% Se carga la imagen a la figura
abiertas. Por ejemplo si tenemos
abierta una figura o grafica en
figure; % Crea una figura en donde vamos a cargar una
matlab, al ejecutar esta línea esa
imagen
ventana se va a cerrar.
imshow(imagenruidoSal)% Se carga la imagen a la figura
Im2bw Convierte una imagen de que viene
Filtro Sal y pimiento
en escala de grises a una imagen
binaria. Este comando se refiere al
proceso de binarización de la
imagen.
Bwreaopen(BW,P) Quita todos los objetos de la imagen
que contengan menos de una
cantidad P de pixeles con una
misma intensidad

EJERCICIO 2

Filtro para el ruido Sal y pimiento

Filtro para el ruido Gaussiano

Explicación Código

%Codigo Realizado por: Jairo Andres Quintero Merchan Explicación Código


9

%Codigo Realizado por: Jairo Andres Quintero Merchan Explicación Código


%Codigo Realizado por: Jairo Andres Quintero Merchan
clc % Se limpia la ventana de comandos.
clear all % Se limpia las variables. clc % Se limpia la ventana de comandos.
close all % Se cierran todas las ventanas de graficos clear all % Se limpia las variables.
close all % Se cierran todas las ventanas de graficos
imagen=imread('Enferma4.jpg'); %Se carga la imagen a
matlab Melanoma=imread('Enferma4.jpg');%Se carga la imagen a
imagen_g = rgb2gray(imagen); % Este comando toma la Matlab
imagen en RGB y la pasa a escala de grises.
figure; % Se crea una figura para mostrar una imagen
imagenruidoGauss = imnoise(imagen_g,'Gaussian',0.1); % Se imshow(Melanoma)% Se carga la imagen ‘Melanoma’ a la
carga ruido gaussiano a la imagen figura
filtro=fspecial('gaussian'); % Devuelve una matriz GrayMelanoma=rgb2gray(Melanoma);% Pasamos la imagen
multidimensional con la que vamos a realizar el filtrado Melanoma que viene en formato RGB a estala de grises y se
gaussiano con el comando “imfilter” guarda en la variable “GrayMelanoma”.
filtrada = imfilter(imagenruidoGauss,filtro) % Se aplica el
filtro gaussiano con la matriz “Filtro” figure; % Se crea una figura para cargar una imagen
imshow(GrayMelanoma)% Se carga la imagen
figure; % Se crea una figura para mostrar una imagen ‘GrayMelanoma’ a la figura
imshow(filtrada)% Se carga la imagen ‘filtrada’ en la figura
BordesCanny=edge(GrayMelanoma,'Canny');% Detecta los
figure; % Se crea una figura para mostrar una imagen bordes de la imagen “GrayMelanoma” utilizando el metodo
imshow(imagenruidoGauss)% Se carga la imagen “Canny”
‘imagenruidoGauss’ en la figura Figure; % Se crea una figura para mostrar una imagen
imshow(BordesCanny)% Se carga la imagen ‘BordesCanny’ a
la figura

Filtro Gaussiano BordesSobel=edge(GrayMelanoma,'Sobel');% Detecta los


bordes de la imagen “GrayMelanoma” utilizando el metodo
“Sobel”
figure; % Se crea una figura para mostrar una imagen
imshow(BordesSobel)% Se carga la imagen ’BordesSobel’ a
la figura

Método de bordes Canny

EJERCICIO 3

Bordes Canny

Los pasos para detectar bordes con este método es:


10

 Obtener la gradiente en donde se tiene que calcular la se1 = strel('line',3,4); % Crea un elemento de estructura lineal
magnitud y orientación de cada pixel. que es simétrico con respecto a la vecindad
 En este segundo paso se realiza el adelgazamiento del erosion1=imerode(BordesCanny,se1); % Esta línea de codigo
ancho de los bordes erosiona la imagen “BordesCanny”
 Se aplica una función de Histéresis que se basa en figure; % Se crea una figura para mostrar una imagen
dos umbrales. Esto se realiza para reducir la imshow(erosion1) % Se carga la imagen ‘erosion1’ en la
posibilidad de contornos falsos. figura

Método de bordes Sobel


Punto B

Explicación Código
se2 = strel('square',2); % Crea un elemento de estructura
morfológica cuadrada cuyo ancho es 2.
erosion2 = imerode(BordesCanny,se2); % Este comando
erosiona la imagen binaria BordesCanny. Se2 es un objeto de
elemento de estructuración.
figure; % Se crea una figura para mostrar una imagen
imshow(erosion2) % Se carga la imagen ‘erosion2’ en la
figura

Bordes Sobel

Técnica “Sobel” para la detección de bordes


Esta técnica utiliza el operador Sobel el cual es un operador
diferencial discreto el cual calcula una gradiente aproximada a
la función de intensidad.

Ejercicio 4

Punto A

Implementación de la función morfológica “Dilatación”

Explicación Código
11

Se aplica dilatación a la imagen con bordes ‘Sobel’.

Realizar el siguiente experimento modificando el


código anterior.

Fuentes:(“MathWorks - Creadores de MATLAB y Simulink -


MATLAB y Simulink - MATLAB & Simulink,” n.d.)

Aporte realizado por el estudiante Fabio Ortiz

IMPLEMENTACIÓN DE CÓDIGOS EN SOFTWARE Imagen 1

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

Imagen 2
12

Imagen 3

Imagen 5

Imagen 4

Explique cada línea de comando.


% Fabio ortiz
Melanoma=imread('Enferma5.jpg');
13

Esla función para que lea la imagen enferma 5, la Clc: borra todas las entradas y salidas de la pantalla
cual se encuentra almacenada en la carpeta de trabajo de la ventana de comandos, brindándole una
de Matlab de este paso, así mismo se encuentra en un "pantalla limpia".
formato JPEG, el cual es un formato soportado por el Clear all: se usa básicamente para borrar / eliminar
programa. las variables creadas en Workspace.
Close all: Se usa para cerrar todas las figuras.
0 Melanoma=im2double(Melanoma); im2bw: Convierte la imagen en una imagen binaria,
Dice que melanoma es igual a la lectura de la imagen según el umbral.
de nombre enferma1 bwreaopen: Elimina pequeños objetos de la imagen
binaria.
1 figure;
Significa crear ventana de figura,
Analice cada imagen obtenida en este ejercicio.
2 imshow(Melanoma)
mostrar imagen, me muestra la imagen original Al realizar los cambios en los parámetros de umbral
y el número de pixeles se observan las técnica de
umbralización o binarización donde el valor del la
3 umbral=0.7; intensidad del pixel es mayor que la del umbral
imagen en un umbral de luminancia de 0.7 asigna color blanco y si es al contrario se asigna color
negro.

4 binMelanoma=im2bw(Melanoma,umbral); Indique cual es la combinación de umbral y de


convierte la imagen en escala de grises en imagen filtro que identifica más del 80% del “Melanoma”
binaria, reemplazando todos los píxeles de la imagen en la imagen asignada (si el estudiante encuentra
de entrada con una luminancia mayor que con el otra combinación, debe indicarla y mostrar la
valor (blanco) y reemplazando todos los demás imagen resultante)
píxeles por el valor (negro).IBWlevel10
La combinación más adecuada para identificar el
tumor corresponde a la configuración número 3
figure;
Significa crear ventana de figura,

5 imshow(~binMelanoma)
mostrar imagen

6 numpixels=10;
ingresar el numero de pixeles

7 Filtrol=bwareaopen(~binMelanoma,numpixels);
elimina todos los componentes conectados (objetos)
que tienen menos de píxeles de la imagen binaria,
produciendo otra imagen binaria,.PBWBW2 Esta
operación se conoce como un.de apertura

8 figure;
Significa crear ventana de figura

9 imshow(Filtrol)
mostrar imagen declaración filtrol
2. Cada estudiante debe averiguar cómo implementar el
filtro para el ruido “sal y pimienta” y el filtro para el ruido
¿Qué hacen las funciones clc, clear all, clos all, “Gaussiano”. Posteriormente implementar el filtro
im2bw y bwreaopen? correspondiente para la imagen con melanoma que le ha
sido asignada.
14

Imagen con ruido Gaussiano Imagen


Original

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

Imagen con ruido Sal y pimienta


b) Imagen Original

Explique cada línea de comando.

Melanoma=imread('Enferma5.jpg'); Se crea la variable


Melanoma.
15

figure; “crea una nueva ventana de figura (figura1)”


imshow(Melanoma); “muestra la imagen resultante”
Gray Melanoma =rgb2gray(Melanoma); “Convierte
imagen escala de grises”
figure; “crea una nueva ventana de figura (figura2)”
imshow(Gray Melanoma) “muestra la imagen resultante”
BordesCanny=edge(GrayMelanoma,'Canny'); usado para
detectar todos los bordes existentes en una imagen
figure; “crea una nueva ventana de figura (figura3)”
imshow(BordesCanny) “muestra la imagen resultante”
BordesSobel=edge(GrayMelanoma,'Sobel'); “se usa edge
y el operador Sobel para calcular el valor umbral”
figure; “crea una nueva ventana de figura (figura4)”
imshow(BordesSobel)

¿Qué hacen las funciones canny y sobel?


Este algoritmo es ampliamente usado en la
localización de contornos. Se caracteriza por evitar la
ruptura de los bordes de los objetos. Su fundamento
se basa en un proceso de optimización, teniendo en
cuenta los siguientes objetivos a maximizar. b.

 Aumentar la relación señal-ruido de la imagen.


 Disminuir todo lo posible la distancia entre el
borde detectado y el borde real.
 No identificar un borde por un único píxel, sino
por un conjunto de píxeles que tengan una cierta
conectividad.

Sobel: La función sobel toma una imagen


(representada como una matriz doble) y un valor de
umbral y devuelve una imagen con los bordes
detectados (en función del valor del umbral).

Analice cada imagen obtenida en este ejercicio.

El resultado de la figura 3 con el método de detección


de borde Canny, se obtiene una una imagen mucho
más precisa para la detección de bordes que el
método Sobel.

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).
• Explique cada línea de comando.
Este código necesita el código del ejercicio 3 para
poder ser ejecutado. EJERCICIO A

Melanoma=imread('Enferma5.jpg'); Se crea la variable


A. Melanoma.
figure; “crea una nueva ventana de figura (figura1)”
imshow(Melanoma); “muestra la imagen resultante”
16

Gray Melanoma =rgb2gray(Melanoma); “Convierte cuya anchura es W píxeles. W debe ser un escalar entero
imagen escala de grises” no negativo.
figure; “crea una nueva ventana de figura (figura2)” SE = strel ('line', LEN, DEG) crea un elemento
imshow(Gray Melanoma) “muestra la imagen resultante” estructural lineal plano que es simétrica con respecto al
BordesCanny=edge(GrayMelanoma,'Canny'); usado para centro de barrio. DEG especifica el ángulo (en grados) de
detectar todos los bordes existentes en una imagen la línea medido en una en sentido contrario a las agujas
figure; “crea una nueva ventana de figura (figura3)” del reloj desde el eje horizontal. LEN es
imshow(BordesCanny) “muestra la imagen resultante” aproximadamente la distancia entre los centros de la
BordesSobel=edge(GrayMelanoma,'Sobel'); “se usa edge estructura elementos de elemento en extremos opuestos
y el operador Sobel para calcular el valor umbral” de la línea.
figure; “crea una nueva ventana de figura (figura4)” Imerode:
imshow(BordesSobel) IM2 = imerode(IM,SE) Erosiona la imagen binaria en
escala de grises, binaria o empaquetada IM, devolviendo
se1=strel('line',3,4);”Indica el elemento estructural que la imagen erosionada, IM2. SE es un elemento
podemos definir a partir de la funcion strel ” estructurante objeto o matriz de objetos de elementos
erosion1=imerode(BordesCanny,se1); “muestra la erosión
morfológica de datos de pixel binario, lo que hace que se estructuradores, devueltos por el comando STREL.
erosionen los bordes mostrándolos en un elemento lineal
de estructuración morfologica” • ¿Qué diferencias encuentra entre el ejercicio a y b?
figure; “crea una nueva ventana de figura”
imshow(erosion1) “Muestra la imagen erosionada” En la primera imagen no se alcanza a observar la imagen
de la Melanoma, solo se ven algunos detalles. Y en la
segunda imagen se alcanza a percibir menos detalles casi
nada.
EJERCICIO B
Melanoma=imread('Enferma5.jpg'); Se crea la variable 2.5. Teniendo en cuenta el código anterior, donde se
utiliza la función morfológica de erosión, el estudiante
Melanoma. deberá investigar cómo implementar la función
figure; “crea una nueva ventana de figura (figura1)” morfológica de “dilatación”, con la dilatación en forma de
imshow(Melanoma); “muestra la imagen resultante” cuadrado y tamaño 2 (‘suaqre’,2).
Gray Melanoma =rgb2gray(Melanoma); “Convierte
imagen escala de grises”
figure; “crea una nueva ventana de figura (figura2)”
imshow(Gray Melanoma) “muestra la imagen resultante”
BordesCanny=edge(GrayMelanoma,'Canny'); usado para
detectar todos los bordes existentes en una imagen
figure; “crea una nueva ventana de figura (figura3)”
imshow(BordesCanny) “muestra la imagen resultante”
BordesSobel=edge(GrayMelanoma,'Sobel'); “se usa edge
y el operador Sobel para calcular el valor umbral”
figure; “crea una nueva ventana de figura (figura4)”
imshow(BordesSobel)

se2=strel('square',2); “Indica el elemento estructural que


podemos definir a partir de la funcion strel”
erosion2=imerode(BordesCanny,se2); “muestra la erosión se2=strel('square',2); “Indica el elemento estructural que
morfológica de datos de pixel binario, lo que hace que se podemos definir a partir de la funcion strel”
erosionen los bordes mostrándolos en un elemento
cuadrado de estructuración morfológica” BW2=imdilate(BordesCanny,se2); Dilatar la imagen,
figure; “crea una nueva ventana de figura” pasando la imagen de entrada y el elemento de
imshow(erosion2) “Muestra la imagen erosionada” estructuración a.imdilate Observe cómo la dilatación
agrega un rango de 1 a todos los lados del objeto en
Strel: Crear un elemento estructurador morfológico, SE = primer plano.
strel('square',W) Crea un elemento estructurador cuadrado
figure; “crea una nueva ventana de figura”
17

 Pechuán, L. M. (2007). Uso de ontologías para guiar


imshow(imresize(BW2,40,'nearest')) cree un elemento de el proceso de segmentacion de imagenes.
estructuración que sea una forma diferente. Dilatar la
imagen original utilizando el nuevo elemento de  [9] Ortiz Zamora, F. G. (2002). Procesamiento
estructuración. morfológico de imágenes en color: aplicación a la
reconstrucción geodésica.

V. CONCLUSION

Gracias al desarrollo de esta actividad, se logró entender la


gran importancia de este curso de tratamiento de imágenes, en
la profesión como Ingeniero de Telecomunicaciones, teniendo
en cuenta lo conceptos iniciales para el entendimiento del
curso.
Así mismo el anexo 1 es muy claro para la solución de la
implementación de códigos, en donde podemos lograr mayor
adaptación al software Matlab, el cual es indispensable para el
procesamiento de imágenes aplicando los códigos exigidos en
la guía de actividades.

VI. REFERENCIAS BIBLIOGRAFICAS

 [1] Valverde-Rebaza, Jorge. (2007). Detección de


bordes mediante el algoritmo de Canny.

 [2] MathWorks - Creadores de MATLAB y Simulink


- MATLAB y Simulink - MATLAB &
Simulink. (n.d.). Retrieved September 10, 2019, from
https://la.mathworks.com/?s_tid=gn_logo

 [3] Cornelissen, F. W., Peters, E. M., & Palmer, J.


(2002). The Eyelink Toolbox: eye tracking with
MATLAB and the Psychophysics Toolbox. Behavior
Research Methods, Instruments, & Computers, 34(4),
613-617.

 [4] Sharma, G., & Martin, J. (2009). MATLAB®: a


language for parallel computing. International
Journal of Parallel Programming, 37(1), 3-36.

 [5] González, R. C., & Woods, R. E.


(1996). Tratamiento digital de imágenes (Vol. 3).
New York: Addison-Wesley.

 [6] de Souza Jr, L. A., Palm, C., Mendel, R., Hook,


C., Ebigbo, A., Probst, A., ... & Papa, J. P. (2018). A
survey on Barrett's esophagus analysis using machine
learning. Computers in biology and medicine, 96,
203-213.

 [7] Torres, A. D. (1996). Procesamiento digital de


imágenes. Perfiles Educativos, (72).

 [8] Triana, N., Jaramillo, A. E., Gutiérrez, R. M., &


Rodríguez, C. A. (2016). Técnicas de umbralización
para el procesamiento digital de imágenes de GEM-
Foils. Scientia et technica, 21(4), 352-359

S-ar putea să vă placă și