Sunteți pe pagina 1din 22

TRATAMIENTO DE IMAGENES

208054

PASO 2 SEGMENTACION DE IMAGENES

PRESENTADO A:
PAOLA ANDREA MATEUS

PRESENTADO POR:
WISMAR LOZANO
CODIGO:1110496895

GRUPO: 17

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA –UNAD


ESCUELA DE CIENCIAS BASICAS TECNOLOGICA E INGENIERIA
IBAGUE-TOLIMA
2019
INTRODUCCION

En el siguiente trabajo encontraremos las definiciones de algunos


conceptos referentes al procesamiento de imágenes, también se
realizará en el software Matlab el procesamiento de una imagen en
escala de grises y veremos diferentes técnicas de segmentación de una
imagen digital.
OBJETIVOS

 Aplicar diferentes técnicas de procesamiento digital a una imagen


para extraer información para su análisis.

OBJETIVOS ESPECIFICOS

 Emplear técnicas de detección de bordes


 Integrar funciones de filtrado
 Aplicar técnicas de segmentación
 Análisis de resultado
Paso 2 – Segmentación de imágenes:

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

es una técnica que consiste en la realización de un barrido en la


matriz de la imagen digital, por medio de bucles o recursividad,
con el fin de que el proceso produzca la reducción de la escala
de grises a dos únicos valores. Negro (= 0) y blanco (= 255), o
lo que es lo mismo, un sistema binario de ausencia y presencia
de color 0-1. La comparación de cada píxel de la imagen viene
determinada por el umbral de sensibilidad (valor T = Threshold).

b. ¿Cuál es la diferencia entre umbralización global y local?


¿Cuál es su implementación en Matlab?

la umbralizacion global solo depende de 𝑓(𝑥, 𝑦) y se utiliza cuando


hay una clara definición del objeto y el fondo. Mientras que con
la umbralizacion local depende de 𝑓(𝑥, 𝑦) y 𝑝(𝑥, 𝑦).

Se implementa con las siguientes funciones en MATlab.

Lea una imagen en escala de grises en el espacio de trabajo.


I = imread('Enferma1.png');

Calcule el umbral utilizando graythresh el umbral se normaliza


En el intervalo [1,2]

level = graythresh(I)
level = 0.4941

convierta la imagen en una imagen binaria utilizando el umbral.

BW = imbinarize(I,level);

Visualice la imagen original junto a la imagen binaria.

imshowpair(I,BW,'montage')
c. ¿Qué es umbral de Otsu?

El umbral Otsu considera que el histograma es bimodal y se itera


a lo largo del histograma calculando para cada valor estimado
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.

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

La reducción de ruido, junto con la interpolación cromática o la


corrección de nitidez, es una de las funciones básicas que todo
procesador de imagen debe implementar. el ruido puede
definirse como la variación del brillo o de la información de color
de una imagen. El concepto de ruido se asocia al significado
de indeseado, pues se trata de variaciones no deseadas dentro
de la imagen.

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

Los filtros digitales constituyen uno de los principales modos de


operar en el procesamiento de imágenes digitales. Pueden usarse
para distintos fines, pero en todos los casos, el resultado sobre
cada píxel depende de los píxeles de su entorno.

¿Cómo funciona? Se visita cada píxel de la imagen y se


reemplaza por la mediana de los píxeles vecinos. La mediana se
calcula ordenando los valores de los pixeles vecinos en orden y
seleccionado el que queda en medio. Da muy buenos resultados
en caso de ruido sal y pimienta.

En Matlab la función que me permite realizar un filtro de la media


será: imfilter
Esta función tiene la siguiente estructura:
B = imfilter(A,H,option1,option2,...)

Esta función filtra el array A con el filtro multidimensional H, el


resultado se almacena en B. Los parámetros option1, option2,…,
son opciones de frontera, de tamaño del array de salida y
opciones de correlación o convolución.
La función de Matlab que me permite generar el filtro H será
fspecial.
h = fspecial(type,parameters)

f. ¿Para qué sirven los filtros de suavizado en una imagen?

 Se usan para emborronar imagen.


 Eliminar pequeños detalles antes de la segmentación de un
objeto de interés.
 Rellenar pequeños espacios
 Eliminar ruido

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


sal y pimienta?

Ruido gaussiano: produce pequeñas variaciones en la imagen.


Tiene su origen en diferencias de ganancias del sensor, ruido en
la digitalización, etc.
Ruido sal y pimienta: Se caracteriza principalmente por cubrir
de forma dispersa toda la imagen con una serie de píxeles
blancos y negros.

h. Explique diferentes técnicas de segmentación de


imágenes.

La segmentación es una técnica que subdivide una imagen en


sus partes constituyentes u objetos, con el fin de separar las
partes de interés del resto de la imagen, por lo tanto el nivel al
que se lleva a cabo esta subdivisión depende del problema a
resolver. En el proceso de detectar las partes en una imagen se
identifican bordes de la imagen, o se segmenta esta en regiones,
líneas o curvas, etc. Otra definición considera a la segmentación
como la clasificación de los puntos de la imagen (pixels),
indicando las clases a la que pertenecen los diferentes pixeles.

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

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. Este uso a niveles de grises permitirá vislumbrar que el
procesamiento morfológico también se puede utilizar como
técnica de procesado de la señal. Actualmente se puede
encontrar aplicaciones en la restauración de imágenes, en la
detección de bordes, en el análisis de texturas, en el aumento
del contraste y hasta en la compresión de imágenes.

j. ¿Qué tipos de funciones morfológicas existen y cómo


funcionan?

Las funciones principales son la erosión y la dilatación. El valor


dilatado de un píxel es el máximo valor de la imagen en la
ventana definida por el elemento estructurante. La erosión es el
operador dual, siendo el valor erosionado de un píxel el mínimo
valor de la imagen en la ventana definida por el elemento
estructurante.
COMPONENTE PRACTICO

Implementación de códigos (componente práctico): cada


estudiante debe realizar de manera individual la implementación
de los códigos que se encuentran en el Anexo 1. También debe
analizar los resultados obtenidos y crear los scripts que se
solicitan en el mismo anexo.

Imagen umbral numpixels


1 0.6 5
Imagen umbral numpixels
2 0.65 10

Imagen umbral numpixels


3 0.55 4
Imagen umbral numpixels
4 0.6 2

Imagen umbral numpixels


5 0.7 10
 Explique cada línea de comando.

%%wismar lozano%%
clc
clear
close
melanoma=imread('Enferma1.jpg');%%creamos una variable
y leemos la imagen guardada en la carpeta%%
melanoma=im2double(melanoma);%%aumentamos la
intesisdad de la imagen original de la variable creada%%
figure;%%crea la imagen en una nueva ventana%%
imshow(melanoma)%optimisamos las propiedades de la
imagen guardada en la variable melanoma%%
umbral=0.7;%%umbralizamos la imagen a distintos
valores%%
binmelanoma=im2bw(melanoma,umbral);%%comvetimos la
imagen a escala de grises y en binaria%%
figure;%%crea la imagen en una nueva ventana del comando
anterior%%
imshow(~binmelanoma)
numpixels=10%%modificamos las propiedades de la imagen
en este caso los pixeles%%
filtro1=bwareaopen(~binmelanoma,numpixels);%%
eliminamos componenetes no deseados d ela imagen%%
figure;%% mostramos imagen en nueva ventana%%
imshow(filtro1)

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

Clc=borramos todas las entradas de la ventana de comandos

Clear all: elimina elementos del espacio de trabajo de Matlab y


restablece el motor MuPAD.

Close all: elimina todas las figuras cuyos identificadores no están


ocultos.
 Analice cada imagen obtenida en este ejercicio.
Según lo observado en las imágenes de los melanomas uel
umbral de 0.6 se ve mayor escala en blanco que las imágenes
que se van acercando a 1 como donde la de 0.65 se observa con
muy baja escala de blancos. Como también se observa la imagen
de los melanomas un numero especifico de pixeles, entre mayor
denominación de pixeles la imagen va tornándose con menos
escalas en blanco claro que esto también se da porque está
directamente influenciado con el umbral ya que se está leyendo
la imagen desde la misma escala.

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

La combinación de umbral y de filtro que nos permite identificar


el melanoma es de umbral 0.7 y el numpixels de 10, con esta
propiedad podemos observar los melanomas.

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
RESULTADO
Codigo

melanoma=imread('Enferma1.jpg');
Graymelanoma=rgb2gray(melanoma);
c=imnoise(melanoma, 'salt & pepper',0.2);
g=imnoise(Graymelanoma, 'salt & pepper',0.2);
j=imnoise(melanoma,'gaussian',0.5);
h=imnoise(Graymelanoma,'gaussian',0.5);
figure;
subplot(2,3,1);imshow(melanoma);title('Imagen original');
subplot(2,3,2);imshow(Graymelanoma);title('imagen GRISES');
subplot(2,3,3);imshow(c);title('salt & pepper original');
subplot(2,3,4);imshow(g);title('salt & pepper grises');
subplot(2,3,5);imshow(j);title('gaussian original');
subplot(2,3,6);imshow(h);title('gaussian grises');

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

RESULTADO
CODIGO

clc
clear
close
melanoma=imread('Enferma1.jpg');
figure;
imshow(melanoma)
Graymelanoma=rgb2gray(melanoma);
figure;
imshow(Graymelanoma)
BordesCanny=edge(Graymelanoma,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(Graymelanoma,'Sobel');
figure;
imshow(BordesSobel)

 Explique cada línea de comando.


%%wismar lozano%%
clc
clear
close
melanoma=imread('Enferma1.jpg');%%leemos informacion de
la carpeta%%
figure;%% nos muestra la ventana d ela imagen a salir%%
imshow(melanoma)%%nos muestra la imagen %%
Graymelanoma=rgb2gray(melanoma);%%pasa la imagen de
color a escala de grises%%
figure;%% nos muestra la ventana d ela imagen a salir%%
imshow(Graymelanoma)%%nos deja ver el espacio donde se
visualizara la imagen de salida%%
BordesCanny=edge(Graymelanoma,'Canny');%%nos muestra
los bordes que contiene la imagen%%
figure;%% nos muestra la ventana d ela imagen a salir%%
imshow(BordesCanny)%%nos muestra la imagen con la
deteccion de bordes%%
BordesSobel=edge(Graymelanoma,'Sobel');%%nos muestra los
bordes horizontales y verticales de imagen en escala de
grises%%
figure;%% nos muestra la ventana d ela imagen a salir%%
imshow(BordesSobel)%%nos muestra la imagen %%
 ¿Qué hacen las funciones canny y sobel?

Sobel: Busca aristas en aquellos puntos en los que el degradado


de la imagen es máximo, utilizando la aproximación de Sobel a
la derivada. I

Canny: Busca bordes buscando la máxima local del degradado.


I La función calcula el degradado utilizando la derivada de un
filtro gaussiano. edge Este método utiliza dos umbrales para
detectar bordes fuertes y débiles, incluidos los bordes débiles en
la salida si están conectados a bordes fuertes. Mediante el uso
de dos umbrales, el método Canny es menos probable que los
otros métodos para ser engañado por el ruido, y es más probable
que detecte los verdaderos bordes débiles.

 Analice cada imagen obtenida en este ejercicio.

el resultado del método canny podemos concluir que detecta los


bordes donde cambia la imagen de color y con el método sobel
se detectan los bordes donde están mas fuertes.

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.

CODIGO A

%%Wismar lozano%%
clc
clear
close
melanoma=imread('Enferma1.jpg');
figure;
imshow(melanoma)
Graymelanoma=rgb2gray(melanoma);
figure;
imshow(Graymelanoma)
BordesCanny=edge(Graymelanoma,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(Graymelanoma,'Sobel');
figure;
imshow(BordesSobel)
se1=strel('line',3,4);
erosion1=imerode(BordesCanny,se1);
figure;
imshow(erosion1)

RESULTADO
CODIGO A

CODIGO B

%%Wismar Lozano%%
clc
clear
close
melanoma=enreda('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)
se2=strel('square',2);
erosion2=imerode(BordesCanny,se2);
figure;
imshow(erosion2)

RESULTADO CODIGO B

 Explique cada línea de comando.

+
resultado

Strel ('line', 3, 2) crea un elemento estructural Lineal en el plano


Luego la dilatación de los valores devueltos de strell Y la salida
grafica de la dilatación. Luego el relleno de los huecos y la
dilatación. Con el comando imfill crea el dato. En base de los
bordes lineales.

RESULTADO
Lee el archivo de la carpeta donde se está extrayendo la
información. Pasa la imagen de color a escala de grises. Nos deja
ver el espacio donde se va a visualizar la imagen de salida. Luego
se identifican los bordes, de las formas en la imagen. Usando el
valor del umbral que tiene la imagen en los elementos. Nos deja
ver el espacio donde se va a visualizar la imagen de salida. Luego
con el operador diferencial de Sobel. Hace un aproximación a la
intensidad de la imagen Finalmente nos deja ver el orden de la
imagen en la salida gráfica.

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

observando las salidas graficas del ejercicio A. son de carácter


líneas Y permite una visualización a la salida con referencia al
tamaño de los bordes. Referente a la salida del ejercicio B. no se
puede visualizar nada porque que las características de los
cuadros de los bordes exceden el tamaño.

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).
CODIGO
%%Wismar Lozano%%
clc
clear
close
melanoma=imread('Enferma1.jpg');
figure;
imshow(melanoma)
Graymelanoma=rgb2gray(melanoma);
figure;
imshow(Graymelanoma)
BordesCanny=edge(Graymelanoma,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(Graymelanoma,'Sobel');
figure;
imshow(BordesSobel)
se2=strel('square',2);
erosion2=imerode(BordesCanny,se2);
figure;
imshow(erosion2)
%%funcion morfologica de dilatacion%%
%%Wismar Lozano%%
se2=strel('square',2);
se2=imdilate(melanoma,se2);
figure;
imshow(se2)

RESULTADO
CONCLUSIONES

 Con el desarrollo de este trabajo El estudiante emplea técnicas


de detección de bordes, binarización y filtrado, para la
segmentación de objetos de interés.
REFERENCIAS BIBLIOGRAFICAS

 Rafael C. Gonzalez, Richard E. Woods: Digital Image Processing.


AddisonWesley, Reading Mass 1992. ISBN 0-201- 50803-6 (en
inglés)

 Bovik, A. C. (2009). The Essential Guide to Image Processing


(Vol. 2nd ed). Amsterdam: Academic Press, pp. 1 - 123.
Recuperado
de http://bibliotecavirtual.unad.edu.co/login?url=http://search.
ebscohost.com/login.aspx?direct=true&db=nlebk&AN=249002&
lang=es&site=eds-live&scope=site

 Mateus, P. (2019, Enero 14), Tratamiento de Imágenes. [OVI].


Recuperado de: http://hdl.handle.net/10596/23302

 Bovik, A. C. (2005). Handbook of Image and Video Processing


(Vol. 2nd ed). Amsterdam: Academic Press, pp. 4 - 12.
Recuperado
de http://bibliotecavirtual.unad.edu.co/login?url=http://search.
ebscohost.com/login.aspx?direct=true&db=nlebk&AN=214674&
lang=es&site=eds-live&scope=site

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