Anda di halaman 1dari 10

Unidad 1, Paso 2 Segmentación de imágenes

Wilde Jenner Socorro Arias, Leonardo Fabio Chavarro, Daniel Felipe Cruz, William Fernando
Rodriguez., Tratamiento de imágenes Grupo 208054_5., Tutora Paola Andrea Mateus.,

 mediante una simple operación que compare los valores de la


imagen con el valor umbral T.
I. INTRODUCTION Funciona bien con imágenes que contienen objetos con una
intensidad uniforme, y diferenciados del fondo. Sin embargo,
E n el informe el lector encuentra los objetivos del trabajo.
Seguidamente el contenido está compuesto
por dos grandes temas, la definición de conceptos y la
falla si existe un bajo contraste entre el objeto y el fondo, si la
imagen es ruidosa, o si la intensidad del fondo varía
significativamente a lo largo de la imagen.
implementación de códigos. Finalizando con
Para este caso se utiliza la Umbralización local donde
las conclusiones y la respectiva bibliografía. Además, el determinan dividiendo una imagen en subimágenes
informe se realizó para aplicar las técnicas de detección de y calculando los umbrales de dichas subimágenes,
bordes, binarización, filtrado y para o examinando las intensidades de la imagen en los alrededores
la segmentación de objetos de interés. Así mismo, este de cada píxel.
informe es útil para filtrar objetos requeridos, en imágenes con La umbralización local es computacionalmente más costosa
variaciones de color, textura e intensidad. que la global. Es muy útil a la hora de segmentar objetos en
Hay que mencionar, que la investigación de artículos y tesis con fondos no homogéneos, y para extraer regiones muy pequeñas
la guía de la página de comandos de Matlab fue fundamental y dispersas.[2]
para el desarrollo del informe.
¿Cuál es su implementación en Matlab?
II. OBJETIVOS
La umbralización global Matlab
 Identificar el umbral, y saber eliminar los objetos
pequeños en segmentación de imágenes
I = imread('coins.png'); % Lea la imagen de escala de
 Aplicar y filtrar el ruido sal y pimienta y el ruido grises en el espacio de trabajo.
gaussiano. BW = imbinarize(I); % Convertir la imagen en una
 Elegir dado el caso la detección de bordes canny o sobel imagen binaria.
 Erosionar o dilatar las imágenes, dependiendo los figure imshowpair(I,BW,'montage') % Muestra la imagen
requisitos requeridos. original junto a la versión binaria.

III. CUERPO La umbralización local Matlab


WILDE JENNER SOCORRO ARIAS I = imread('rice.png'); % Lea la imagen de escala de grises en
1. DEFINICIÓN DE CONCEPTOS Workspace.
BW = imbinarize(I, 'adaptive'); % Convertir imagen de
a. ¿Qué es umbralización o binarización? escala de grises a imagen binaria.

La umbralización es uno de los más importantes métodos de figure imshowpair(I,BW,'montage') % Mostrar imagen
segmentación. El objetivo es convertir una imagen en escala original a lo largo de la versión binaria lateral. [3]
de grises a una nueva con sólo dos niveles imagen binaria, de
c. ¿Qué es umbral de Otsu?
manera que los objetos queden separados del fondo.[1]
b. ¿Cuál es la diferencia entre umbralización global y local?
Otsu es un método de umbralización que utiliza la distribución
de probabilidad, la media y la varianza de las intensidades
Se diferencia que la umbralización global se usa cuando en la
para definir el umbral óptimo.[4]
imagen el objeto puede ser extraído del resto de la imagen

This paragraph of the first footnote will contain the date on which you National Institute of Standards and Technology, Boulder, CO 80305 USA (e-
submitted your paper for review. It will also contain support information, mail: author@ boulder.nist.gov).
including sponsor and financial support acknowledgment. For example, “This S. B. Author, Jr., was with Rice University, Houston, TX 77005 USA. He is
work was supported in part by the U.S. Department of Commerce under Grant now with the Department of Physics, Colorado State University, Fort Collins,
BS123456.” CO 80523 USA (e-mail: author@lamar.colostate.edu).
The next few paragraphs should contain the authors’ current affiliations, T. C. Author is with the Electrical Engineering Department, University of
including current address and e-mail. For example, F. A. Author is with the Colorado, Boulder, CO 80309 USA, on leave from the National Research
Institute for Metals, Tsukuba, Japan (e-mail: author@nrim.go.jp).
d. ¿Qué es reducción de ruido en una imagen binaria? Método de cuenca: Basado en la interpretación topológica, los
resultados son más estables, los limites detectados son más
Son algoritmos que tienen por objeto reducir el ruido y/o continuos
efectos espurios que pueden presentarse en una imagen a
consecuencia del proceso de captura, digitalización y Método en PDE: Funciona con ecuaciones diferenciales, es
transmisión. Su utilización es normalmente necesaria antes de más rápido, mejor para aplicaciones críticas en el tiempo.
la aplicación de un detector de bordes.[5]
Método ANN: Útil en la simulación del proceso de
e. ¿Qué es filtro mediano y cómo se implementa en aprendizaje para la toma de decisiones, no hay necesidad de
Matlab? escribir programas complejos con él.[9]
Se reemplaza el valor de cada píxel por la media de los valores
de los píxeles vecinos. Se puede operar mediante convolución i. ¿Qué es reconstrucción morfológica?
con una máscara determinada. Simplificar los datos de una imagen para preservar las
Ventaja, es el más simple, intuitivo y fácil de implementar, características esenciales y eliminar aspectos irrelevantes.
desventajas, sensible a cambios locales, Puede crear nuevas
intensidades de grises que no aparecían en la imagen. j. ¿Qué tipos de funciones morfológicas existen y cómo
B = medfilt2(A) realiza un filtrado medio de la imagen A en funcionan?
dos dimensiones. Cada píxel de salida contiene el valor medio
en un vecindario de 3 por 3 alrededor del píxel La erosión funciona con una compuerta and, expande el fondo,
correspondiente de la imagen de suaviza la frontera del objeto, remueve los objetos más
entrada. medfilt2 almohadillas de la imagen con 0s en los pequeños que la ventana.[10]
bordes, por lo que los valores de mediana para los puntos
dentro de la mitad de la anchura del vecindario ([m n]/2) de La dilatación funciona con una compuerta or, expande el
los bordes pueden aparecer distorsionados.[6] tamaño del objeto, suaviza la frontera del objeto, remueve los
huecos más pequeños que la ventana.
f. ¿Para qué sirven los filtros de suavizado en una imagen?
2. IMPLEMENTACIÓN DE CODIGOS
 Emborronar la imagen:
 Eliminar pequeños detalles antes de la segmentación de PUNTO 1
un objeto de interés.
 Rellenar pequeños espacios. clc %Limpia la ventana de comandos
 Eliminar ruido [7] clear all %Vacía el contenido del workspace
close all %Cierra todas las figuras
g. ¿Cuál es la diferencia entre ruido gaussiano y ruido de %%
sal y pimienta? % Wilde Socorro
Vitiligio=imread('Enferma1.jpg'); % Carga la información de
El ruido conocido como sal y pimienta tiene los pixeles de la la imagen Enferma 1 en la variable “Vitiligio”
imagen muy diferentes en color e intensidad a los pixeles Vitiligio=im2double(Vitiligio); %Convierte la imagen a
circundantes. El ruido de tipo gaussiano, todos los pixeles que precisión doble y la almacena en "Vitiligio"
componen la imagen cambian su valor de acuerdo con la figure; %crea una nueva ventana figura, pero sin mostrar la
distribución gaussiana [8] imagen aún
imshow(Vitiligio) %Carga en la ventana figure la imagen
h. Explique diferentes técnicas de segmentación de almacenada en Vitiligio
imágenes %%
umbral=0.73;% carga la variable umbral con el valor 0.73
Método de Umbral, Utiliza los picos de histograma de la binVitiligio=im2bw(Vitiligio,umbral); %Convertir la imagen a
imagen para encontrar valores particulares, sin necesidad de imagen binaria, basada en el rango de umbral
información previa. figure;%crea una nueva ventana figura, pero sin mostrar la
imagen aún
Método de bordes: Basado en la detección de discontinuidad, imshow(binVitiligio) %Carga en la ventana figure la imagen
bueno para imágenes que tienen mejor contraste entre objetos almacenada en "binVitiligio"
%%
Método en región: Utiliza la división de la imagen en regiones numpixels=10; %Almacena el valor 10 en la variable
homogéneas, es más inmune al ruido, útil cuando es fácil numpixels.
definir criterios de similitud Filtro1=bwareaopen(binVitiligio,numpixels); %Quitar los
objetos pequeños de la imagen binaria que tengan menos de
Método agrupación: Útil en la división en clústeres 10 px
homogéneos, difuso (borroso) utiliza la pertenencia parcial por figure;%crea una nueva ventana figura, pero sin mostrar la
lo tanto es más útil para los problemas reales. imagen aún
imshow(Filtro1)%Carga en la ventana figure la imagen 4 El valor del
almacenada en "Filtro1" 0.75 umbral es
200 adecuado pero
TABLE I el filtro esta
CODIGO 1
alto, elimina
Imagen Resultado Descripción
Umbral todos los
Numpixels objetos
1 Como el pequeños
0.6 umbral está
1000 bajo no está
capturando
bien el objeto
más grande y 5 El umbral esta
el filtro está 0.85 alto corta los
demasiado 500 objetos
alto, elimina grandes. El
todos los filtro esta
objetos grande y
pequeños de la elimina los
imagen. objetos
pequeños. Es
la, pero
combinación
umbral, filtro.
6 El umbral
0.73 capta la mayor
10 cantidad de
2 Hay una buena objetos
0.7 relación entre posibles sin
50 umbral y filtro defórmalos y
mostrando el filtro
objetos elimina muy
grandes bien los
medianos y objetos
pequeños demasiado
pequeños esta
imagen para
mi concepto es
un poco mejor
que la imagen
3 El umbral esta 2
0.8 alto y está
70 mostrando
imperfeccione
s en los PUNTO 2
objetos
grandes, el clc %Limpia la ventana de comandos
filtro está clear all %Vacía el contenido del workspace
eliminando las close all %Cierra todas las figuras
imágenes muy % Wilde Jenner Socorro Arias
pequeñas de %%
manera H = imread('Enferma1.jpg'); figure, imshow(H) % Carga la
adecuada. información de la imagen Enferma 1 en la variable “H”
I= rgb2gray(H); figure, imshow(I) %Convierte la imagen “H”
a escala de grises y la almacena en “I”
J = imnoise(I,'salt & pepper',0.02); figure, imshow(J)%agrega
el ruido de la sal y de la pimienta, donde 0.02 es la densidad
del ruido. Esto afecta aproximadamente 0.02*(I) píxeles.
%%
K = medfilt2(J);%Realiza un filtrado medio de la imagen A en figure; %crea una nueva ventana figura, pero sin mostrar la
dos dimensiones. Cada píxel de salida contiene el valor medio imagen aún
en un vecindario de 3 por 3 alrededor del píxel imshow(Vitiligio) %Carga en la ventana figure la imagen
correspondiente de la imagen de entrada almacenada en "Vitiligio"
%% GrayVitiligio=rgb2gray(Vitiligio); % Convierte la imagen
subplot(1,3,1); imshow(I); title('Original'); subplot(1,3,2); “Vitiligio” a escala de grises y la almacena en “GrayVitiligio”
imshow(J); title('Sal y pimienta'), subplot(1,3,3); imshow(K); figure; %crea una nueva ventana figura, pero sin mostrar la
title('Con filtro medio') % muestra la imagenes "I" "J" y "K" imagen aún
en una misma grafica imshow(GrayVitiligio) %Carga en la ventana figure la imagen
almacenada en "GrayVitiligio"
BordesCanny=edge(GrayVitiligio,'Canny');% Aplica el
metodo Canny a la imagen "GrayVitiligio" y lo almacena en
"BordesCanny"
figure; %crea una nueva ventana figura, pero sin mostrar la
imagen aún
imshow(BordesCanny) %Carga en la ventana figure la imagen
almacenada en "BordesCanny"
BordesSobel=edge(GrayVitiligio,'Sobel');% Aplica el metodo
Sobel a la imagen "GrayVitiligio" y lo almacena en
"BordesSobel"
clc %Limpia la ventana de comandos figure; %crea una nueva ventana figura, pero sin mostrar la
clear all %Vacía el contenido del workspace imagen aún
close all %Cierra todas las figuras imshow(BordesSobel)%Carga en la ventana figure la imagen
% Wilde Jenner Socorro Arias almacenada en "BordesSobel"
%%
H = imread('Enferma1.jpg'); figure, imshow(H) % Carga la ¿Qué hacen las funciones canny y sobel?
información de la imagen Enferma 1 en la variable “H”
I = rgb2gray(H); figure, imshow(I) %Convierte la imagen “H” Función canny encuentra aristas buscando los máximos
a escala de grises y la almacena en “I” locales del gradiente de la imagen utilizando la derivada de un
I = im2double(I); figure, imshow (I) % Convierte la variable filtro de Gauss. Este método utiliza dos umbrales para detectar
“I" a doble precisión y la almacenan en "I". bordes fuertes y débiles, incluidos los bordes débiles de la
J = imnoise(I,'gaussian',0.01); figure, imshow(J)%agrega el salida si están conectados a bordes fuertes. Al usar dos
ruido gaussiano, con variación 0.01. umbrales, el método Canny es menos probable que los otros
%% métodos que se engañen por el ruido y es más probable que
K = imgaussfilt(J,1); figure, imshow (K) % Filtra la imagen J detecte bordes débiles verdaderos.[11]
con un kernel alisador 2-D de Gauss con desviación 1
subplot(1,3,1); imshow(I); title('Original'); subplot(1,3,2); Función Sobel, calcula el gradiente de la intensidad de una
imshow(J); title('Ruido Gaussiano'), subplot(1,3,3); imagen en cada punto (pixel). Así, para cada punto, entrega la
imshow(K); title('Con filtrado de Gauss') % muestra la magnitud del mayor cambio posible
imagenes "I" "J" y "K" en una misma grafica Matemáticamente, el gradiente de una función de dos
variables para cada punto es un vector bidimensional. Para
cada punto de la imagen, el vector gradiente apunta en
dirección del incremento máximo posible de la intensidad, y la
magnitud del vector gradiente corresponde a la cantidad de
cambio de la intensidad en esa dirección.[12]

PUNTO 3

clc
clear all
close all
%Wilde Jenner Socorro Arias
Vitiligio=imread('Enferma1.jpg'); % Carga la información de
la imagen Enferma 1 en la variable “Vitiligio”
Función Resultado Descripción
Canny La función canny está
mostrando umbrales
tanto fuertes como
débiles por eso la imagen
no se ve bien

b)
Sobel Está encontrando
solamente aristas en
%% Wilde Jenner Socorro Arias
aquellos puntos donde la
se2=strel('square',2); %crea un elemento de estructuración
gradiente es máxima
cuadrada cuyo ancho es 2 píxeles.
como lo son los objetos
erosion2=imerode(BordesCanny,se2); % erosiona la Imagen
grandes medianos y
"BordesCanny" basandose en el objeto se2
pequeños del vitiligio
figure;%crea una nueva ventana figura, pero sin mostrar la
imagen aún
imshow(erosion2)%Carga en la ventana figure la imagen
almacenada en "erosion1"

PUNTO 4

a)
%% Wilde Jenner Socorro Arias
se1=strel('line',3,4); %crea un elemento de estructuración
lineal que es simétrico con respecto al centro de la vecindad. 3
es distancia a los centros y 4 el angulo de la linea
erosion1=imerode(BordesCanny,se1); % % erosiona la
Imagen "BordesCanny" basandose en el objeto se1
figure;%crea una nueva ventana figura, pero sin mostrar la
imagen aún
imshow(erosion1)%Carga en la ventana figure la imagen
almacenada en "erosion1"

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


La imagen a) está menos erosionada que la b), debido a que el
objeto de muestra de la erosión 1, es 1 fila x 3 columnas es
más pequeño que el de erosión 2 2 filas x 2 columnas
LEONARDO FABIO CHAVARRO La idea de un filtro mediano conlleva el uso de una técnica de
1. DEFINICIÓN DE CONCEPTOS filtro no lineal, con el propósito de remover el ruido, preserva
los bordes mientras remueve el ruido
a. ¿Qué es umbralización o binarización?
En Matlab puede implementarse mediante la siguiente línea de
comando
La umbralización o binarización consiste en un barrido
matricial de la imagen en donde las escalas de grises toman
>> g = medfilt2(f, [m n] );
valores de 0-1, es decir Negro (0) Blanco (255) los valores de
sensibilidad adoptan los que sean mayores al umbral toman un % [m n] = tamaño dela máscara (por defecto 3x3)
valor de 255
f. ¿Para qué sirven los filtros de suavizado en una imagen?
b. ¿Cuál es la diferencia entre umbralización global y local? Un filtrado se trata de un método de resaltar o eliminar
¿Cuál es su implementación en Matlab? algunas características de la imagen con un propósito definido
Un filtro de suavizado sirve para dos propósitos en esencia
Umbralización global: es aquella que toma valores estáticos volver una imagen difusa ,eliminar ruido
Umbralización local: adaptan el valor del umbral de manera
manual o automática dependiendo de las características de la g. ¿Cuál es la diferencia entre ruido gaussiano y ruido de
imagen segmentada el reto surge cuando se tienen que
sal y pimienta?
establecer los valores máximos y mínimos y el
establecimiento de su umbral de los contenidos de blanco y El ruido Gaussiano que señala una distribución de ruido de
negro de la imagen original una gran cantidad de variables independientes , que pueden ser
tratadas de acuerdo a su concentración , son muestra de ello
Como se puede configurar la umbralizacion en Matlab las vibraciones térmicas y que las integran el movimiento de
Umbralización una gran cantidad de electrones, se pueden presentar
principalmente en la adquisición de la imagen puede causarlo
:>> im2bw(f,T) la iluminación deficiente , altas temperaturas , mientras que el
ruido de ‘sal y pimienta’ se refiere a una concentración de
Donde T es el umbral tal que todos los niveles de intensidad ruido solo en algunos pixeles no una en una distribución de
por debajo de T los hace 0 y todos los que son mayores que T toda la matriz de pixeles de la imagen como el ruido gaussiano
los hace 1. Dicho umbral se puede obtener con la siguiente el efecto es semejante a esparcir sobre un tapiz blanco algunas
función la cual aplica el método de Otsu: manchas negras o viceversa – pixeles oscuros en regiones
brillantes o pixeles claros en regiones oscuras podrían deberse
>> T=graythresh(f) a errores en la conversión análoga digital

c. ¿Qué es umbral de Otsu? h. Explique diferentes técnicas de segmentación de


imágenes
Procedimiento de muestreo de umbrales de grises que tiene en
cuenta la suma ponderada de las varianzas de clase mediante La segmentación de imágenes hace referencia a la
una búsqueda exhaustiva zonificación de con respecto a características propias u
Se resume en la siguiente formula homogenas , podrían clasificarse de acuerdo a sus contorno a
fi su nivel de grises entre otras – características comunes de los
Pi =
N pixeles , a continuación se enumeran algunas técnicas para la
Se podría resumir en la probabilidad (Pi) de ocurrencia del segmentación que probablemente se apliquen
nivel de gris es igual a Frecuencia (fi) de repetición del mismo
nivel sobre la cantidad de muestras (N) Algoritmos de compresión monocromática

d. ¿Qué es reducción de ruido en una imagen binaria? Discontinuidad, en los tonos de gris que permite detectar
puntos aislados
Se implementan a nivel de reducción de ruido (noise reduction Similaridad Permite construir regiones por división y fusión,
), sin embargo últimamente se están realizando muchos por crecimiento y umbralizacion
esfuerzos para conseguir sensores que capten el menor ruido Conectividad si existe una región tal que trace un camino que
posible en los fotodiodos, se pueden aplicar a nivel de grises o conecte
de cada uno de los componentes binarios
Métodos de segmentación
e. ¿Qué es filtro mediano y cómo se implementa en
Matlab? Locales: basadas en pixeles
Globales: Basados en la recopilación de información como los
histogramas
Métodos basados en bordes im2bw(vitiligo,umbral);%Se representa la imagen en forma
Métodos basados en regiones binaria ,especificando el nivel de luminicencia indexado
bwareopen(binvitiligo,numpixels);%Quita todos los objetos
Homogeneidad y proximidad geométrica como por ejemplo binarios que tienen menos pixeles que los indexados bajo la
técnicas de crecimiento, fusión o división variable ‘numpixels’

i. ¿Qué es reconstrucción morfológica? TABLE II


CODIGO 1
Es un proceso de tratamiento de imágenes en el cual se define
la vecindad y el tamaño del pixel analizado usando su Imagen Resultado Descripción
estructura, composición o su enmascaramiento matricial Umbral
Numpixels
1 En el primer
j. ¿Qué tipos de funciones morfológicas existen y cómo
0.6 ejercicio se
funcionan? 1000 establece el
Existen en particular cuatro funciones morfológicas que son: umbral de
Erosión: Usa un filtro mínimo y la imagen se oscurece luminiscencia
Dilatación: Usa un filtro máximo y generalmente la imagen se en 0.6 y se
aclara conservando su semejanza con la imagen original retiraran las
Apertura: Se usa para borrar detalles claros que sean pequeños cantidades de
en comparación con la imagen estructural total pixeles que
Cierre: Elimina detalles oscuros están sobre
ese umbral lo
1. IMPLEMENTACIÓN DE CODIGOS cual nos
muestra para
PUNTO 1
el efecto una
imagen
clc% inicia el panel de control en 0s
clear all% limpia todos los debug creados anteriomente tratada que se
close all% cierra las imagenes o codigo desplegado aproximas a
anteriormente los resultados
%Leonardo Fabio chavarro 2019-02-09 del ejercicio
vitiligo=imread('Enferma4.jpg');%lee la imagen que denomine 1000 pixeles
imagen 4 y la transforma en una variable llamada 'vitiligo' 2 En el primer
vitiligo=im2double(vitiligo);%vierte el string como una 0.7 ejercicio se
variable para poder aplicar instrucciones 50 establece el
figure;%la trata como un grafico umbral de
imshow(vitiligo)%muestra la imagen luminiscencia
umbral=0.85;%Se establece el nivel de luminicencia de la en 0.7 y se
imagen retiraran las
binvitiligo=im2bw(vitiligo,umbral);%Se representa la imagen cantidades de
en forma binaria ,especificando el nivel de luminicencia
pixeles que
indexado
están sobre
figure;%la trata como un grafico
ese umbral lo
imshow(binvitiligo)%Muestra la imagen creada con el umbral
aplicado cual 50
numpixels=500;%especifica el tamaño de los pixeles pixeles, los
filtro1=bwareopen(binvitiligo,numpixels);%Quita todos los resultados
objetos binarios que tienen menos pixeles que los indexados esperados son
bajo la variable ‘numpixels’ buenos sin
figure; embargo en
imshow(filtro1)%Devuelve la imagen con el filtro aplicado comparación
con la primera
¿Qué hacen las funciones clc, clear all, clos all, im2bw y imagen no se
bwreaopen? obtiene
clc% inicia el panel de control en 0s muchos
clear all% limpia todos los debug creados anteriomente detalle
close all% cierra las imagenes o codigo desplegado
anteriormente
3 En el primer por debajo del
0.8 ejercicio se nivel, sin
70 establece el embargo se
umbral de pierde la
luminiscencia perspectiva de
en 0.8 y se estudio en
retiraran la este punto
cantidad de
pixeles que El caso en particular que más se acerca a la identificación de los
están sobre objetos de nuestro interés para el estudio adelantado es
ese umbral lo luminiscencia con un umbral a 0.6 y la cantidad de pixeles
cual 70 retirados por debajo de ese nivel 1000
pixeles, El
detalle más PUNTO 2
significativo
clc% inicia el panel de control en 0s
para el efecto
clear all% limpia todos los debug creados anteriomente
del ejercicio se
close all% cierra las imagenes o codigo desplegado
pierde
anteriormente
4 En el primer %Leonardo Fabio chavarro 2019-03-13
0.75 ejercicio se vitiligo=imread('Enferma4.jpg');%lee la imagen que denomine
200 establece el imagen 4 y la transforma en una variable llamada 'vitiligo'
umbral de figure;
luminiscencia imshow(vitiligo)
en 0.5 y se GaussianNoise=imnoise(vitiligo,'gaussian',0.10);
retiraran la figure;
cantidad de imshow(GaussianNoise)
pixeles que
están sobre Ruido Gaussiano
ese umbral lo
cual 200
pixeles,
Comienza en
este punto a
identificar en
esta
binarización el
área de la piel
o de la imagen
clc% inicia el panel de control en 0s
a interés
clear all% limpia todos los debug creados anteriomente
5 En el primer close all% cierra las imagenes o codigo desplegado
0.85 ejercicio se anteriormente
500 establece el %Leonardo Fabio chavarro 2019-03-13
umbral de vitiligo=imread('Enferma4.jpg');%lee la imagen que denomine
luminiscencia imagen 4 y la transforma en una variable llamada 'vitiligo'
en 0.85 y se figure;
retiraran la imshow(vitiligo)
cantidad de Saltpepper=imnoise(vitiligo,'salt & pepper',0.10);
pixeles que figure;
están sobre imshow(Saltpepper)
ese umbral lo
cual 500
pixeles,
Removemos
todos los
pixeles que se
encuentran
Ruido Sal y Pimienta Función Resultado Descripción
Canny Usando el método canny
el análisis vectorial en la
matriz de la gráfica es
más restrictivo para la
clasificación de los
objetos lo cual a su vez
permite clasificar y aislar
el área de estudio
PUNTO 3

clc% inicia el panel de control en 0s


clear all% limpia todos los debug creados anteriomente
close all% cierra las imagenes o codigo desplegado
anteriormente
%Leonardo Fabio chavarro 2019-03-04
vitiligo=imread('Enferma4.jpg');%lee la imagen que denomine
imagen 4 y la transforma en una variable llamada 'vitiligo'
figure;%la trata como un grafico
imshow(vitiligo)%muestra la imagen
grisvitiligo=rgb2gray(vitiligo);%Transforma la imagen de
escala RGB a grises
figure;%la trata como un grafico Sobel Usando el método sobel
imshow(grisvitiligo)%muestra la imagen en gris el análisis vectorial en la
bordescanny=edge(grisvitiligo,'Canny');%Devuelve el método matriz de la gráfica es
de detaccion de aristas usando el método Canny menos restrictivo para la
imshow(bordescanny)%Muestra la imagen tratada clasificación de los
bordesobel=edge(grisvitiligo,'Sobel');% );%Devuelve el objetos con cierto grado
método de detaccion de aristas usando el método Sobel de iluminación no es
factible realizar una
figure;%la trata como un grafico correcta identificación de
imshow(bordesobel) %Muestra la imagen tratada los objetos de interés

¿Qué hacen las funciones canny y sobel?


PUNTO 4
Ambos métodos de detección de borde se comportan de una
manera similar sin embargo El método canny usa el método clc% inicia el panel de control en 0s
clear all% limpia todos los debug creados anteriomente
Gaussiano para calcular el gradiente esto es el método Canny
close all% cierra las imagenes o codigo desplegado
es menos susceptible al ruido, el método sobel usa la anteriormente
convolución para el cálculo de su gradiente %Leonardo Fabio chavarro 2019-02-09
vitiligo=imread('Enferma4.jpg');%lee la imagen que denomine
imagen 4 y la transforma en una variable llamada 'vitiligo'
grisvitiligo=rgb2gray(vitiligo);%Transforma la imagen de
escala RGB a grises
bordescanny=edge(grisvitiligo,'Canny');%Trata el sistema de
borde
figure;%la trata como un grafico
imshow(bordescanny)%Muestra la imagen tratada con el
método de borde Canny
se1=strel('line',3,4);Se crea un elemento de estructuración
lineal que es simétrico el ‘3’ indica la distancia entre los
centros , el ‘4’ indica los grados hacia los cuales se va tomar la
matriz
erosion1=imerode(bordescanny,se1);%Erosiona la imagen de
acuerdo con el elemento de estructuración de la matriz
definido en el punto anterior en este caso se1
figure;
imshow(erosion1)Muestra la imagen anteriormente erosionada
se2=strel('square',2);Elemento de estructuración cuadrada
cuyo ancho en este caso son ‘2’ pixeles
erosion2=imerode(bordescanny,se2); Erosiona la imagen de
acuerdo con el elemento de estructuración de la matriz
definido en el punto anterior en este caso se1

figure;
imshow(erosion2) Muestra la imagen anteriormente
erosionada

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


En este caso el elemento de estructuración lineal en el caso a
es mejor para detectar los elementos de interés

´ PUNTO 5

clc% inicia el panel de control en 0s


clear all% limpia todos los debug creados anteriomente
close all% cierra las imagenes o codigo desplegado
anteriormente
%Leonardo Fabio chavarro 2019-03-13
vitiligo=imread('Enferma4.jpg');%lee la imagen que denomine
imagen 4 y la transforma en una variable llamada 'vitiligo'
figure;
imshow(vitiligo)
se2=strel('square',2);
Dilatacion=imdilate(vitiligo,se2);%aplico 'imdilate para dilatar
la imagen de acuerdo al tratamiento de bordes anterior
figure;
imshow(Dilatacion)
%bordesobel=edge(grisvitiligo,'Sobel');%Trata el sistema de
borde
%figure;%la trata como un grafico
%imshow(bordesobel)%muestra la imagen en gris

Anda mungkin juga menyukai