Está en la página 1de 51

Unidad 1- Fase 2 - Realizar detección de bordes, binarización,

filtrado y reconstrucción morfológica

Universidad Nacional Abierta y a Distancia

Estudiante
Sergio Andrés Murcia Garzón
Daniel Alfredo Castillo
Orlando Rodríguez
Cristian Camilo Henao

Grupo: 208054_1

Tutor
PAOLA ANDREA MATEUS

Universidad Nacional Abierta y a Distancia UNAD


Escuela de Ciencias Básicas, Tecnología e Ingeniería
ECBTI
TRATAMIENTO DE IMAGENES

AGUA DE DIOS CUNDINAMARCA


25 DE SEPTIEMBRE
2018
INTRODUCCION
En el siguiente trabajo daremos a conocer los conceptos básicos sobre los problemas
que podemos encontrar en el tratamiento de imágenes, sus posibles casusas y
soluciones que puedan contribuir a mejorar la información contenida en la imagen para
que su interpretación y percepción para nosotros los seres humanos que solo podemos
percibir una mínima parte del espectro electromagnético sea más fácil con el uso de
la tecnología y herramientas como lo son matlab la cual usaremos en el curso de
tratamiento de imágenes.
OBJETIVOS
 Comparar y ejecutar técnicas de separación de objetos de una imagen con el
uso de matlab
 Manejar y elegir diferentes tipos de filtros como solución al mejoramiento de
una imagen digital.
 Realizar binarización y reconstrucción morfológica de los objetos de interés en
la imagen procesada.
Anexo 1
1. Investigación de las siguientes preguntas.
a. ¿Qué es umbralizacion o binarización?
R/ La umbralizacion es uno de los más importantes métodos de segmentación. El
objetivo es convertir una imagen en escala de grises a una nueva con sólo dos niveles,
de manera que los objetos queden separados del fondo. El histograma de la Figura
que se encuentra abajo corresponde a una imagen compuesta de objetos claros sobre
un fondo oscuro. Una forma de extraer el objeto del fondo es seleccionar un umbral
de intensidad T que separe los dos conjuntos. De este modo, cualquier punto (x,
y) para el que f(x, y)>T, pertenecerá al objeto, en caso contrario, pertenecerá al
fondo. Si los valores de gris del objeto y del resto de la imagen difieren claramente,
entonces el histograma mostrará una distribución bimodal, con dos máximos distintos,
separados por una región vacía. Con lo cual se logrará una separación perfecta entre
el objeto y el fondo, al establecer un valor umbral ubicado en esta región del
histograma.

si (viejo_píxel>umbral)
nuevo_píxel = MAX
sino
nuevo_píxel = MIN

b. ¿Cuál es la diferencia entre umbralizacion global y local? ¿Cuál es su


implementación en Matlab?
R/ La diferencia es que la umbralizacion local puede ser determinada dividiendo una
imagen en sub imágenes y calculando los umbrales de dichas sub imágenes, o
examinando las intensidades de la imagen en los alrededores de cada píxel a diferencia
del Umbral global o global, T, es aquel que es único sobre toda la imagen y no necesita
de subdivisiones de la imagen a tratar, en pocas palabras el valor umbral en un método
es estático y en el otro el valor varia por las características de cada pixel.
Su implementación en matlab se realiza con los siguientes códigos para la
umbralizacion global, que como bien sabemos resulta cuando el valor t0=0 y t1=1
tenemos la binarización de la imagen completa código empleado:
imagen_bin=im2bw(imagen,level) donde level es el nivel de umbral entre 0 y 1 y para
la umbralizacion local empleamos el código imagen_bin=imagen<=umbral donde
umbral puede ser un valor entre 0 y 225.
c. ¿Qué es umbral de Otsu?
R/El umbral de otsu es uno de los métodos más antiguos de tratamiento de imágenes
digitales, creado en 1979 por noboyuki otsu, consiste en utilizar la varianza que es
una medida de dispersión de valores, (dispersión de los niveles de gris).El método de
Otsu calcula el valor umbral de forma que la dispersión dentro de cada segmento sea
lo más pequeña posible, pero al mismo tiempo la dispersión sea lo más alta posible
entre segmentos diferentes. Para ello se calcula el cociente entre ambas variancias y
se busca un valor umbral para el que este cociente sea máximo.

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


R/El ruido en una imagen binaria lo podríamos definir como regiones dispersas de
tamaño pequeño comparado con las regiones de interés, para solucionar este
problema es posible implementar un filtro de tamaño sería posible eliminar todos los
componentes que no superen un determinado umbral de tamaño, Para extraer el
tamaño en imágenes con varias regiones es indispensable pasar por una etapa previa
llamada etiquetado.

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

R/Filtro mediano es un filtro que genera una nueva imagen, cuyos pixeles se generan
calculando la mediana del conjunto de los pixeles vecinos de la imagen origen,
logrando homogenizar los pixeles que tengan intensidades diferentes.

En Matlab la función que me permite realizar un filtro de la media será: imfilter (ver
ayuda de Matlab). 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.

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


R/Los filtros de suavizado en una imagen cumplen con la función de reducir la cantidad
de variaciones de intensidad entre píxeles vecinos, optimizar y enfatizar cierta
información o conseguir un efecto especial en ella.
g. ¿Cuál es la diferencia entre ruido gaussiano y ruido de sal y pimienta?
R/La diferencia es que el ruido gaussiano se define como ruido blanco estocástico que
presenta media nula, varianza constante y covarianza nula y si además la distribución
es normal y el ruido de sal y pimienta se define como ocurrencias aleatorias de pixeles
completamente blancos y completamente negros, Añade el ruido a la imagen donde d
es la densidad del ruido.
h. Explique diferentes técnicas de segmentación de imágenes
R/La segmentación es una técnica usada para dividir o particionar una
imagen en partes llamadas segmentos la segmentación tiene varias técnicas
las cuales son:
 Método de agrupamiento: El algoritmo de K-means es una técnica iterativa que
se utiliza para dividir una imagen en K clusters. El algoritmo básico es:

1. Escoger K centros de clusters, ya sea de forma aleatoria o basándose en


algún método heurístico.
2. Asignar a cada píxel de la imagen el clúster que minimiza la varianza entre el
pixel y el centro del clúster.
3. Recalcular los centros de los clusters haciendo la media de todos los pixeles
del clúster.
4. Repetir los pasos 2 y 3 hasta que se consigue la convergencia (por ejemplo,

los pixeles no cambian de clusters).


 Método basado en el histograma: En esta técnica, un histograma se calcula
a partir de todos los píxeles de la imagen, y los picos y valles en el histograma
se utilizan para localizar los grupos en la imagen (el color o la intensidad pueden
ser usados como medida). Un refinamiento de esta técnica consiste en aplicar
de forma recursiva el método de búsqueda de histograma a los clusters de la
imagen con el fin de dividirlos en grupos más pequeños.
 Detección de bordes: La detección de bordes es un campo bien desarrollado
por sí mismo en el procesamiento de imágenes. Los límites de regiones y los
bordes están estrechamente relacionados, ya que a menudo hay un fuerte ajuste
en la intensidad en los límites de las regiones. Las técnicas de detección de
bordes pueden ser usadas como otra técnica de segmentación más. Los bordes
identificados por la detección de bordes en ocasiones están desconectados. Para
segmentar un objeto a partir de una imagen sin embargo, es necesario que los
bordes formen figuras cerradas.
 Método de crecimiento de regiones: El primer método de crecimiento de
regiones fue el método de crecimiento de regiones a partir de semillas. Este
método toma un conjunto de semillas como entrada junto con la imagen. Las
semillas marcan cada uno de los objetos que tienen que ser segmentados. Las
regiones crecen iterativamente mediante la comparación de todos los píxeles
vecinos no asignados a ninguna región.
 Método del conjunto del nivel: La propagación de curvas es una técnica
popular en el análisis de imágenes para la extracción de objetos, seguimiento de
objetos, la reconstrucción en 3D, etc. La idea central de este enfoque consiste
en desarrollar una curva hacia el menor potencial de una función de coste que
en su definición refleja la tarea a la que está dirigida e impone ciertas
limitaciones de suavidad.
 Método de particionamiento gráfico: Los métodos de particionamiento
gráfico se pueden usar con eficacia en la segmentación de imágenes. En estos
métodos, la imagen se modela como un grafo ponderado no dirigido. Por lo
general, un pixel o un grupo de pixeles se asocian con los nodos y los pesos de
las aristas definen la similitud entre los píxeles vecinos.

 Transformación divisoria: La transformación divisoria (watershed) calcula las


líneas divisorias (de aguas).Una imagen en escala de grises puede ser vista como
un relieve topográfico, donde se interpreta el nivel de gris de un píxel como su
altura en el relieve.También, se puede considerar la magnitud del gradiente de
una imagen como una superficie topográfica. Los píxeles que tienen las más
altas intensidades de gradiente corresponden a las líneas divisorias, que
representan los límites de las regiones.

 Método del valor umbral: El método del valor umbral (umbralización) consiste
en fijar unos umbrales (límites) de forma que los píxeles que se encuentre entre
cada par de límites formarán un objeto al realizar la segmentación. En el método
del valor umbral hay dos posibles situaciones:Umbral único. Se da cuando
solamente hay dos agrupaciones de píxeles semejantes en una imagen (un
objeto y el fondo), para separarlos se establece un umbral T. Los puntos mayores
al umbral T serán puntos del objeto, y los menores a dicho umbral formarán una
parte del fondo.Umbral multinivel. Dada una imagen con x clase de objetos, para
separarlos todos hacen falta x-1 umbrales de forma que los píxeles que se
encuentran entre cada par de umbrales Ti y Tj representarán a una clase de
objeto.
 Segmentación basada en modelos: La hipótesis central de este enfoque es que
las estructuras de interés tienen una forma geometría repetitiva. Por lo tanto, se
puede buscar un modelo probabilístico para explicar la variación de la forma de la
estructura y luego cuando se segmenta una imagen se imponen limitaciones para
tomar la imagen como el modelo elegido a priori. Esta tarea implica:

1. La selección de los ejemplos de entrenamiento (ejemplos que se usan para


probar los modelos).
2. La representación probabilística de la variación de los ejemplos seleccionados.
3. La inferencia estadística entre el modelo y la imagen.

 Segmentación multiescala: Las segmentaciones de la imagen se calculan en


múltiples escalas y a veces se propaga de gran escala a pequeña escala. Los
criterios de segmentación pueden ser arbitrariamente complejos y se pueden
tener en cuenta tanto criterios globales como locales. Un requisito común es que
cada región debe estar conectada en algún sentido.
 Segmentación semi-automatica: En este tipo de segmentación, el usuario
define las regiones de interés con clics del ratón y los algoritmos se aplicarán de
forma que se elige el camino que mejor se ajusta al borde de la imagen. Técnicas
como la SIOX, Livewire, o tijeras inteligentes se utilizan en este tipo de
segmentación.
 Redes neuronales de segmentación: Las redes neuronales de segmentación
se basan en el procesamiento de pequeñas áreas de una imagen utilizando una
red neuronal artificial o un conjunto de redes neuronales. Después de este
proceso de decisión se construye un mecanismo que marca las áreas de una
imagen de acuerdo a la categoría reconocida por la red neuronal.

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


R/Es una técnica de procesamiento no lineal dela 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.

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


R/Función morfológica de dilatación: Dada una imagen A, y un elemento
estructural B, (ambos imágenes binarias con fondo blanco), la dilatación de A por B se
define como: Tengamos en cuenta que, para la intersección sólo consideramos los
píxeles negros de A y B. El primer elemento de la dilatación, A, está asociado con la
imagen que se está procesando y el segundo recibe el nombre de elemento estructural,
la forma que actúa sobre A en la dilatación para producir

Función morfológica de Erosión: Dada una imagen A, y un elemento estructural B,


(ambos imágenes binarias con fondo blanco), la erosión de una imagen, A, por
un elemento estructural, B, es el conjunto de todos los elementos x para los cuales B
trasladado por x está contenido en A: Tengamos en cuenta que, para la condición Bx
A, sólo consideramos los píxeles negros de A y B. La erosión es la operación
morfológica dual de la dilatación. La erosión se concibe usualmente como una
reducción de la imagen original.
Parte práctica Estudiante Sergio Andrés Murcia Garzón.

2. Implementación de los siguientes códigos Procedimiento (Experimento) –


Parte Individual: 2.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 una nueva imagen que será enviada por el tutor y el estudiante deberá
solicitarla por correo interno. Esta nueva imagen la debe guardar como “Enferma1

Línea de códigos original

clc
clear all
close all

Cerebro=imread('Enferma1.jpg');
Cerebro=im2double(Cerebro);
figure;
imshow(Cerebro)
umbral=0.45;
binCerebro=im2bw(Cerebro,umbral);
figure;
imshow(binCerebro)
numpixels=200;
Filtro1=bwareaopen(binCerebro,numpixels);
figure;
imshow(Filtro1)
Linea de códigos al probar varios niveles de umbral y pixeles
clc
clear all
close all

Cerebro=imread('Enferma1.jpg');
Cerebro=im2double(Cerebro);
figure;
imshow(Cerebro)
umbral=0.55;
binCerebro=im2bw(Cerebro,umbral);
figure;
imshow(binCerebro)
numpixels=100;
Filtro1=bwareaopen(binCerebro,numpixels);
figure;
imshow(Filtro1)

Imagen generada

Realizar el siguiente experimento modificando el código anterior

Imagen Umbral Numpixeles


1 0.3 1000
2 0.6 50
3 0.8 10
4 0.55 100
5 0.28 270
Explique cada línea de comando.
Clc “Borra el texto de la ventana de comandos”
Clear all “Elimina todas las variables del espacio de trabajo”
Close all “Cierra todas las variables del espacio de trabajo”

Cerebro=imread('Enferma1.jpg'); “lee la imagen especificada”


Cerebro=im2double(cerebro); “Convertir imagen a doble precisión”
figure; “crea una nueva ventana de figura (figura1)”
imshow(Cerebro) “muestra la imagen resultante”
umbral=0.28; “asigna valor de umbral”
bincerebro=im2bw(cerebro,umbral); “convierte la imagen en binaria de acuerdo al
umbral”
figure; “crea una nueva ventana de figura (figura2)”
imshow(bincerebro) “muestra la imagen resultante”
numpixels=270; “asigna numero de pixeles a la imagen”
filtro1=bwareaopen(bincerebro,numpixels); “aplica filtro eliminando los objetos
pequeños de la imagen”
figure; “crea una nueva ventana de figura (figura3)”
imshow(filtro1) “muestra la imagen resultante”

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

 Función clc: clc borra todo el texto de la ventana de comandos, dando por
resultado una pantalla clara.
 Función clear: elimina todas las variables del espacio de trabajo de modelo
representado por el objeto de Simulink.
 Función all: Determinar si los elementos de la matriz están distinto de cero o true.
 Función im2bw: Convertir imagen en imagen binaria, basado en el umbral.
 Función bwreaopen: quita todos los componentes conectados (objetos) que
tienen menos que P píxeles desde el binario imagen BW, produciendo otra imagen
binaria, BW2. Esta operación se conoce como un área de apertura.

• Analice cada imagen obtenida en este ejercicio.

R/Al realizar el experimento con el nivel de umbral y numero de pixeles dada


por el ejercicio obtenemos una identificación muy poca de la tumoración
clc
clear all
close all
Cerebro=imread('Enferma1.jpg');
Cerebro=im2double(Cerebro);
figure;
imshow(Cerebro)
umbral=0.45;
binCerebro=im2bw(Cerebro,umbral);
figure;
imshow(binCerebro)
numpixels=200;
Filtro1=bwareaopen(binCerebro,numpixels);
figure;
imshow(Filtro1)

Así que se realizan pruebas para determinar cuál es el valor correcto de umbral y
Numpixel, al probar cada valor obtenemos lo siguiente:
Con los valores 0.6 de umbral y 50 en Numpixel obtenemos el siguiente resultado

Como podemos apreciar la imagen obtenida no es clara asi que vamos a probar los
siguientes valores.
Probaremos con valores de 0.8 y 100
Con estos valores solo podemos observar el contorno del cerebro sin apreciar nada
del tumor por ende queda descartada
Procedemos a probar los valores 0.55 y 100 y el resultado obtenido es el siguiente

Al probar esta combinación de umbral y filtro podemos apreciar el tamaño y ubicación


de la tumoración, dando por sentado que es la combinación más acertada.
Ahora vamos a probar la última combinación para determinar si la afirmación antes
mencionada es correcta
Y como se observa no muestra la tumoración si no toda la corteza cerebral
por lo tanto nuestra afirmación si era correcta.
• Indique cual es la combinación de umbral y de filtro que sirve para identificar el
“tumor” en la imagen del cerebro asignada (si el estudiante encuentra otra
combinación, debe indicarla)
R/La combinación más adecuada entre umbral y filtro es la numero 4.
2.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 que del cerebro que le
ha sido asignada. Nota: El código se debe adjuntar junto con las imágenes
resultantes:
R/El código a implementar para implementar el filtro para el ruido “sal y pimienta”
clc
clear all
close all

Cerebro=imread('Enferma1.jpg');
Cerebro=im2double(Cerebro);
figure;
imshow(Cerebro)
Cerebro=imread('Enferma1.jpg');
Cerebro=rgb2gray(Cerebro);
Cerebro=imnoise(Cerebro,'salt & pepper',0.03);
figure;
imshow(Cerebro)
R/ Cerebro=imnoise(Cerebro,'salt & pepper',0.03);
R/Código a implementar filtro para el ruido “Gaussiano”.
Cerebro=imnoise(Cerebro,'gaussian',0.03);
clc
clear all
close all

Cerebro=imread('Enferma1.jpg');
Cerebro=im2double(Cerebro);
figure;
imshow(Cerebro);
Cerebro=imread('Enferma1.jpg');
Cerebro=rgb2gray(Cerebro);
Cerebro=imnoise(Cerebro,'gaussian',0.03);
figure;
imshow(Cerebro)
2.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). Nota: Si
no está trabajando en la carpeta donde se encuentra la imagen guardada, al
realizar el código le saldrá error.
clc
clar all
close all
Cerebro=imread('Enferma1.jpg');
figure;
imshow(Cerebro)
GrayCerebro=rgb2gray(Cerebro);
figure;
imshow(GRayCerebro)
BordesCanny=edge(GrayCerebro,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(GrayCerebro,'Sobel');
figure;
imshow(BordesSobel)
Explique cada línea de comando.
clc “Borra el texto de la ventana de comandos”
clar all “Elimina todas las variables del espacio de trabajo”
close all “Cierra todas las variables del espacio de trabajo”
Cerebro=imread('Enferma1.jpg'); “lee la imagen especificada”
figure; “crea una nueva ventana de figura”
imshow(Cerebro) “muestra la imagen resultante”
GrayCerebro=rgb2gray(Cerebro);”Convierte la imagen RGB a escala de grises”
figure; “crea una nueva ventana de figura”
imshow(GrayCerebro) muestra la imagen resultante
BordesCanny=edge(GrayCerebro,'Canny');”Detecta los bordes Fuertes y debiles de la
imagen”
figure; “crea una nueva ventana de figura”
imshow(BordesCanny)”Muestra la imagen de bordes detectados”
BordesSobel=edge(GrayCerebro,'Sobel'); );”Detecta los bordes Fuertes y debiles de la
imagen”
figure; “crea una nueva ventana de figura”
imshow(BordesSobel) )”Muestra la imagen de bordes detectados”
• ¿Qué hacen las funciones canny y sobel?
R/Función canny: El método Canny encuentra aristas buscando máximos locales del
gradiente de I. La edge función calcula el gradiente utilizando la derivada de un filtro
gaussiano. Este método utiliza dos umbrales para detectar bordes fuertes y débiles,
incluyendo bordes débiles en la salida si están conectados a bordes fuertes. Mediante
el uso de dos umbrales, el método de Canny es menos probable que los otros métodos
sean engañados por el ruido, y más probabilidades de detectar verdaderos bordes
débiles.
Función sobel: Este método encuentra bordes usando la aproximación de Sobel a la
derivada. Devuelve bordes en los puntos donde el gradiente de I es máximo
• Analice cada imagen obtenida en este ejercicio.
BordesCanny: Detecta todos los bordes más débiles de la imagen y los muestra de
una manera más clara lo que nos da una visibilidad completa de la corteza cerebral
Bordes Sobel: Muestra los bordes más fuertes de la imagen mostrándonos el
contorno del cerebro omitiendo los bordes débiles y omitiendo casi toda la estructura
del cerebro, estableciendo una diferencia totalmente marcada al comparar las dos
imágenes.

2.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. Este código necesita el código del ejercicio
2,3 para poder ser ejecutado.
R/
clc
clear all
close all

Cerebro=imread('Enferma1.jpg');
figure;
imshow(Cerebro)
GrayCerebro=rgb2gray(Cerebro);
figure;
imshow(GrayCerebro)
BordesCanny=edge(GrayCerebro,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(GrayCerebro,'Sobel');
figure;
imshow(BordesSobel)

se1=strel('line',3,4);
erosion1=imerode(BordesCanny,se1);
figure;
imshow(erosion1)
• Explique cada línea de comando.
Ejercicio A
clc “Borra el texto de la ventana de comandos”
clar all “Elimina todas las variables del espacio de trabajo”
close all “Cierra todas las variables del espacio de trabajo”
Cerebro=imread('Enferma1.jpg'); “lee la imagen especificada”
figure; “crea una nueva ventana de figura”
imshow(Cerebro) “muestra la imagen resultante”
GrayCerebro=rgb2gray(Cerebro);”Convierte la imagen RGB a escala de grises”
figure; “crea una nueva ventana de figura”
imshow(GrayCerebro) muestra la imagen resultante
BordesCanny=edge(GrayCerebro,'Canny');”Detecta los bordes Fuertes y debiles de la
imagen”
figure; “crea una nueva ventana de figura”
imshow(BordesCanny)”Muestra la imagen de bordes detectados”
BordesSobel=edge(GrayCerebro,'Sobel'); );”Detecta los bordes Fuertes y debiles de la
imagen”
figure; “crea una nueva ventana de figura”
imshow(BordesSobel) )”Muestra la imagen de bordes detectados”
se1=strel('line',3,4);”Indica el elemento estructural que podemos definir a partir de
la funcion strel ”
erosion1=imerode(BordesCanny,se1); “muestra la erosión morfológica de datos de pixel
binario, lo que hace que se erosionen los bordes mostrándolos en un elemento lineal de
estructuración morfologica”
figure; “crea una nueva ventana de figura”
imshow(erosion1) “Muestra la imagen erosionada”
Ejercicio A

Ejercicio B
clc “Borra el texto de la ventana de comandos”
clar all “Elimina todas las variables del espacio de trabajo”
close all “Cierra todas las variables del espacio de trabajo”
Cerebro=imread('Enferma1.jpg'); “lee la imagen especificada”
figure; “crea una nueva ventana de figura”
imshow(Cerebro) “muestra la imagen resultante”
GrayCerebro=rgb2gray(Cerebro);”Convierte la imagen RGB a escala de grises”
figure; “crea una nueva ventana de figura”
imshow(GrayCerebro) muestra la imagen resultante
BordesCanny=edge(GrayCerebro,'Canny');”Detecta los bordes Fuertes y debiles de la
imagen”
figure; “crea una nueva ventana de figura”
imshow(BordesCanny)”Muestra la imagen de bordes detectados”
BordesSobel=edge(GrayCerebro,'Sobel'); );”Detecta los bordes Fuertes y debiles de la
imagen”
figure; “crea una nueva ventana de figura”
imshow(BordesSobel) )”Muestra la imagen de bordes detectados”
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 morfológica de datos de pixel
binario, lo que hace que se erosionen los bordes mostrándolos en un elemento cuadrado
de estructuración morfológica”
figure; “crea una nueva ventana de figura”
imshow(erosion1) “Muestra la imagen erosionada”
• ¿Qué diferencias encuentra entre el ejercicio a y b?

R/las diferencias es que al realizar la trasformación morfológica lineal dejamos de


observar el mapeado completo del cerebro y solo tenemos una especie de imagen
borrosa de manera lineal, y con la transformación morfológica de erosión en cuadrado
tenemos un efecto similar al ruido sal y pimienta pero con la diferencia de que no
podemos apreciar ningún tipo de imagen.
• 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 6 (‘suaqre’,6).
Nota: El código se debe adjuntar junto con las imágenes resultantes
R/El resultado que obtuve al implementar el código de función morfológica de
dilatación en cuadrado con valor de 6, es que la imagen que se obtiene no muestra
nada, el valor de 6 dilata la imagen a tal punto que no podemos observar nada en ella.
clc
clear all
close all

Cerebro=imread('Enferma1.jpg');
figure;
imshow(Cerebro)
GrayCerebro=rgb2gray(Cerebro);
figure;
imshow(GrayCerebro)
BordesCanny=edge(GrayCerebro,'Canny');
figure;
imshow(BordesCanny)
BordesSobel=edge(GrayCerebro,'Sobel');
figure;
imshow(BordesSobel)

se3=strel('square',6);
imdilate=imerode(BordesCanny,se3);
figure;
imshow(imdilate)

Parte Experimental estudiante Daniel Alfredo Castillo


Procedimiento (Experimento) – Parte Individual:

2.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 una nueva imagen que será enviada por el tutor y el
estudiante deberá solicitarla por correo interno. Esta nueva imagen la debe guardar como “Enferma1”.
Nota: Si no está trabajando en la carpeta donde se encuentra la imagen guardada, al realizar el código le
saldrá error.

Código:

Imagen original:
Resultados:

Realizar el siguiente experimento modificando el código anterior.

Imagen umbral numpixels Resultados


1 0.3 1000

2 0.6 50

3 0.8 10
4 0.55 100

5 0.28 270

 Explique cada línea de comando.

* cerebro=imread('enferma2.jpg'); “lee la imagen especificada”


* cerebro=im2double(cerebro); “Convertir imagen a doble precisión”
* figure; “crea una nueva ventana de figura (figura1)”
* imshow(cerebro) “muestra la imagen resultante”

* umbral=0.28; “asigna valor de umbral”


* bincerebro=im2bw(cerebro,umbral); “convierte la imagen en binaria de acuerdo al
umbral”
* figure; “crea una nueva ventana de figura (figura2)”
* imshow(bincerebro) “muestra la imagen resultante”

* numpixels=270; “asigna numero de pixeles a la imagen”


* filtro1=bwareaopen(bincerebro,numpixels); “aplica filtro eliminando los objetos
pequeños de la imagen”
* figure; “crea una nueva ventana de figura (figura3)”
* imshow(filtro1) “muestra la imagen resultante”
 ¿Qué hacen las funciones clc, clear all, clos all, im2bw y bwreaopen?

*Clc: borra todas las entradas y salidas de la pantalla de la ventana de


comandos, brindándole una "pantalla limpia".

*Clear all: se usa básicamente para borrar / eliminar las variables creadas en
Workspace.

*Close all: Se usa para cerrar todas las figuras.

* im2bw: Convierte la imagen en una imagen binaria, según el umbral.

* bwreaopen: Elimina pequeños objetos de la imagen binaria.

 Analice cada imagen obtenida en este ejercicio.

Al realizar el ejercicio de cambiar los parámetros de umbral y el numero de


pixeles podemos observar que se realiza la técnica de umbralización o
binarización donde compara si la intensidad del pixel es mayor que la del
umbral asigna color blanco y si es al contrario se asigna color negro.
En este caso podemos observar que se identifica mejor el tumor cuando
asigna color blanco y además utilizando el comando “bwreaopen” que nos
ayuda a eliminar los pequeños objetos de la imagen.

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


el “tumor” en la imagen del cerebro asignada (si el estudiante encuentra otra
combinación, debe indicarla)

La combinación que mejor identifica el tumor es la siguiente:


Umbral: 0.45
Filtro: 200

2.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 que del cerebro que le ha
sido asignada.
Nota: El código se debe adjuntar junto con las imágenes resultantes
ruido “Gaussiano”:

Resultados:

ruido “Sal y pimienta”:


Resultados:

2.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).
Código:

Resultados:
 Explique cada línea de comando.

Cerebro=imread('Enferma2.jpg'); ““lee la imagen especificada”


figure; “crea una nueva ventana de figura (figura1)”
imshow(Cerebro); “muestra la imagen resultante”
GrayCerebro=rgb2gray(Cerebro); “Convierte imagen escala de grises”
figure; “crea una nueva ventana de figura (figura2)”
imshow(GrayCerebro) “muestra la imagen resultante”
BordesCanny=edge(GrayCerebro,'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(GrayCerebro,'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?


Canny: Detector de bordes Canny es una de las herramientas de procesamiento de
imágenes más utilizadas, que detecta los bordes de manera muy contundente. Los
pasos en el detector de bordes Canny son los siguientes:
1. Alise la imagen con un Gaussiano bidimensional. En una gran cantidad de casos,
el cálculo de un Gaussiano bidimensional es costoso, por lo que se estima por dos
Gaussianos unidimensionales, uno en la dirección x y el otro en la dirección y.
2. Toma el gradiente de la imagen. Esto demuestra cambios en la intensidad, lo que
indica la aparición de bordes. Esto da genuinamente dos consecuencias, el gradiente
en la dirección x y el gradiente en la dirección y.
3. Supresión no máxima: los bordes se producirán en los puntos donde el gradiente
se encuentra en el máximo. Por lo tanto, todos los puntos en un máximo no deben
ser suprimidos. Para facilitar esto, la magnitud y la dirección del gradiente se calcula
en cada píxel. Luego, para cada píxel, compruebe si la magnitud del degradado es
mayor a una distancia de un píxel en la dirección positiva o negativa perpendicular al
degradado. Si el píxel no es más grande que ambos, suprímelo.
4. Umbral de borde: el método de umbralización utilizado por el Detector de borde
Canny se denomina "histéresis". Hace uso tanto de un umbral alto como de un
umbral bajo. Si un píxel tiene un valor por encima del umbral alto, se establece
como un píxel de borde. Si un píxel tiene un valor por encima del umbral bajo y es el
vecino de un píxel de borde, también se establece como un píxel de borde. Si un
píxel tiene un valor por encima del umbral bajo, pero no es el vecino de un píxel de
borde, no se establece como un píxel de borde. Si un píxel tiene un valor por debajo
del umbral bajo, nunca se establece como un píxel de borde
Sobel: El método Sobel se aplica para realizar la detección de bordes. Utiliza dos
máscaras con tamaños de 3x3, una para estimar el gradiente en la dirección “x” y la
otra para estimar el gradiente en la dirección “y”. La máscara se desliza sobre la
imagen, manipulando un cuadrado de píxeles a la vez. El algoritmo calcula el
gradiente de la intensidad de la imagen en cada punto y luego da la dirección para
aumentar la intensidad de la imagen en cada punto de claro a oscuro. Las áreas de
los bordes representan fuertes contrastes de intensidad que son más oscuros o más
brillantes.
• Analice cada imagen obtenida en este ejercicio.
Se observa que con el resultado de la figura 3 con el método de detección de borde
Canny, es mucho mas preciso para la detección de bordes que el método Sobel.
2.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).

a.

Código con ejercicio 2.3:

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

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 6 (‘suaqre’,6).
Resultados:

Como algunos compañeros no subieron las preguntas a tiempo y no se logró


un debate para seleccionarlas adjunte los aportes de cada uno de ellos, ya
que tampoco realizaron la segunda parte del trabajo
APORTES PREGUNTAS ORLANDO RODRIGUEZ
Actividades a desarrollar
Fase 2 - Realizar detección de bordes, binarización, filtrado y reconstrucción
morfológica: En esta parte del curso cada estudiante debe dar respuesta a las 10
preguntas propuestas y realizar el procesamiento de la imagen asignada. Realizar los
experimentos planteados para afianzar el conocimiento de las preguntas teóricas.
1. Investigación de las siguientes preguntas

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


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). Por ejemplo, los
valores que sean mayores que el umbral toman un valor 255 (blanco) y los menores
0 (negro). Sezgin & Sankur (2004), en base a las particularidades entre algoritmos
categorizan los métodos de umbralización en seis grupos.
Aquí añadimos uno más, los métodos globales:
HISTOGRAMA: métodos basados en el análisis de los picos máximos y mínimos de
las curvas del histograma del suavizado de la imagen.
CLUSTERING: métodos basados en discernir como las muestras de los niveles de
gris se agrupan o alternativamente se modelan como una mezcla de dos gaussianas.
ENTROPÍA: métodos basados en el análisis de los resultados de la aplicación de
algoritmos que utilizan la entropía de las regiones frontal y de fondo, la entropía
cruzada entre la imagen original y binarizada.
SIMILITUD: métodos basados en la búsqueda de una similitud entre las escalas de
grises, como la tonalidad difusa, los bordes de la imagen, etc.
ESPACIALES: métodos analíticos que usan el orden de distribución, la probabilidad
y/o la correlación entre los diferentes píxeles.
GLOBALES: métodos cuyo valor del umbral es estático.
LOCALES: métodos que adaptan el valor del umbral, de forma manual o
automática, a cada píxel dependiendo de las características locales de la imagen
segmentada.

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


implementación en Matlab?
La diferencia entre umbralización global y local es que la global utiliza métodos cuyo
valor del umbral es estático y la local métodos que adaptan el valor del umbral, de
forma manual o automática.

c. ¿Qué es umbral de Otsu?


ideado por Otsu (1979), este procedimiento no paramétrico selecciona el umbral
óptimo maximizando la varianza entre clases mediante una búsqueda exhaustiva. La
varianza entre clases se define como una suma ponderada de las varianzas. El
método Otsu no precisa información previa de la imagen antes de su procesamiento,
ni supervisión humana para el cálculo de los umbrales. En la umbralización de dos
niveles se calcula la contingencia de distribución de ambas clases. Los píxeles se
dividen en dos clases con diferentes niveles de gris respectivamente.

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


diferentes técnicas que se utilizan para la reducción del ruido y que son necesarias
para retener tanto como sea posible las características de importancia. Estas son:
Filtrado de mediana, Filtrado de Wiener, reducción normal.
e. ¿Qué es filtro mediano y cómo se implementa en Matlab?
Filtro de la media.
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.
En Matlab la función que me permite realizar un filtro de la media será: imfilter (ver
ayuda de Matlab).
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.
La función fspecial crea filtros bidimensionales del tipo especificado por type (para
más información ver ayuda de Matlab).
h = fspecial(type,parameters)
El valor de type puede ser un filtro pasa baja gaussiano, un detector de bordes de
sobel o prewitt, un operador laplaciano, un filtro de la media, etc.
Los parámetros dependen del tipo de filtro.
Pongamos un ejemplo de aplicar el filtro de la mediana sobre una imagen
“cameraman.jpeg” a la que se le ha introducido ruido aleatorio del tipo sal y
pimienta, con una máscara de 3X3 y otra de 9X9.
im=imread('C:\MATLAB7\work\imagenes\cameraman.gif'); fn=imnoise(im,'salt &
pepper',0.05); h1=fspecial('average'); h2=fspecial('average',[9,9]);
media1=imfilter(fn,h1); media2=imfilter(fn,h2); %Representaciones de las
imágenes subplot(2,2,1),subimage(im),title('Imagen original');
subplot(2,2,2),subimage(fn),title('Imagen con ruido');
subplot(2,2,3),subimage(media1),title('Filtro de media 3X3');
subplot(2,2,4),subimage(media2),title('Filtro de media 9X9');

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


Tienen por objeto reducir el ruido y/o efectos espurios que pueden presentarse en
una imagen a consecuencia del proceso de captura, digitalización y transmisión. Su
utilización es normalmente necesaria antes de la aplicación de un detector de
bordes.
Existen distintos tipos de algoritmos que permiten la reducción del ruido. En esta
práctica veremos algunos filtros lineales (convolución de una imagen con una
máscara predefinida) y no lineales (operación no lineal con los píxeles del entorno de
vecindad).

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


El valor de cada punto es el resultado de promediar con distintos pesos los valores
vecinos a ambos lados de dicho punto. Este tipo del filtro también tiene el problema
del difuminado de los bordes, pero no es tan acusado como el caso de la media
simple. Este tipo de filtro reduce especialmente el ruido tipo gaussiano. Ruido
gaussiano: produce pequeñas variaciones en la imagen. Tiene su origen en
diferencias de ganancias del sensor, ruido en la digitalización, etc.
El código de Matlab y las imágenes obtenidas de aplicar este tipo de filtro,
comparándolo con uno de la media son:
im=imread('C:\MATLAB7\work\imagenes\cameraman.gif');
fn = imnoise(im,'gaussian');
h1=fspecial('gaussian');
h2=fspecial('average');
g1=imfilter(fn,h1);
media2=imfilter(fn,h2);
%Representaciones de las imágenes subplot(2,2,1),subimage(im),title('Imagen
original'); subplot(2,2,2),subimage(fn),title('Imagen con ruido gaussiano');
subplot(2,2,3),subimage(g1),title('Filtro gaussiano');
subplot(2,2,4),subimage(media2),title('Filtro de media 3X3');

h. Explique diferentes técnicas de segmentación de imágenes


SEGMENTACIÓN DE IMÁGENES La segmentación 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 está 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 (pixeles), indicando las clases a la que pertenecen los diferentes
pixeles. Los atributos básicos de segmentación de una imagen son: la luminancia en
imágenes monocromáticas.
los componentes de color en imágenes en color, textura, forma, etc. [4]. La
segmentación automática es una de las tareas más difíciles del procesamiento de
imágenes, esta etapa determina el eventual éxito o fracaso del análisis, de hecho
rara vez llega a alcanzar una solución satisfactoria, se debe buscar un método
alternativo de comprobación para la verificación de los resultados. Un considerable
número de trabajos de investigación se centran en este problema. Los algoritmos de
segmentación de imágenes monocromáticas generalmente se basan en una de las
dos propiedades básicas de los valores del nivel de gris: discontinuidad y
similaridad. En la discontinuidad el método consiste en dividir una imagen basándose
en los cambios bruscos del nivel de gris. Los temas más importantes en la
discontinuidad son: a) detección de puntos aislados, y b) detección de líneas y c)
detección de bordes de una imagen. En la similaridad, se presenta la regularidad en
los valores del nivel de gris, los principales métodos están basados en a)
umbralización, b) crecimiento de región, y c) división y fusión de regiones[4]. La
segmentación de una imagen basado en la discontinuidad o en la similaridad de los
valores del nivel de gris de sus pixeles es aplicable tanto a las imágenes estáticas
como a las dinámicas (variantes en el tiempo). En la Figura N.º 2 se muestra un
ejemplo de segmentación de imagen.
i. ¿Qué es reconstrucción morfológica?
La dilatación y la erosión poseen la particularidad de que cuanto iteran hasta
estabilidad permiten la generación un poderoso algoritmos de reconstrucción
morfológica.
Aplicaciones de reconstrucción morfológica:
Los resultados de la reconstrucción están fuertemente influenciados por la elección
correcta de la máscara y el marcador.

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


Dilatación:
 Amplia bordes
 Une objetos próximos
 Une puntos blancos próximos
 Elimina detalles negros pequeños
Erosión:
 Reduce bordes
 Separa objetos próximos
 Elimina puntos blancos separados
 Amplia detalles negros pequeños.
APORTES PREGUNTAS CRISTIAN CAMILO HENAO
RESPUESTA DE LAS PREGUNTAS ANEXO 1

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

La umbralización (thresholding) es un método que busca segmentar imágenes


escalares creando una partición binaria de las intensidades de las imágenes. Una
umbralización trata de determinar un valor de intensidad, llamado umbral
(threshold), que separa las clases deseadas. La segmentación se logra agrupando
todos los pixeles con mayor intensidad al umbral en una clase, y todos los otros
pixeles en otra clase; 0 y 1 generalmente.

2. ¿Cuál es la diferencia entre umbralización global y local y su


implementación en Matlab?
El umbral fijo o global es aquel que es único sobre toda la imagen. En cambio, la
umbralización local actúa localmente en pequeñas partes de la imagen resultando
en una imagen binaria que separa las regiones de interés del fondo. Claramente la
umbralización local tomaría más recursos computaciones en Matlab que la
umbralización global, debido a que se debe hacer una umbralización global en
diferentes secciones de la imagen.
3. ¿Qué es umbral de Otsu?

Hay varios métodos para elegir el umbral adecuado, como los siguientes:
- Algoritmo ISODATA.
- Método de los dos picos.
- Método de Otsu.

El método Otsu es uno de los más utilizados en la determinación automática del


umbral de segmentación empleando técnicas estadísticas.
En este método se utiliza la varianza, que es una medida de la dispersión de los
valores de los niveles de gris con el objetivo de poder calcular el valor umbral de
forma que la dispersión dentro de cada clase sea lo más pequeña posible, pero al
mismo tiempo la dispersión sea lo más alta posible entre clases diferentes.

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


El término ruido es apropiado para definir los puntos de color dispersos en las
fotografías digitales. La causa que origina el ruido digital está relacionada con el
funcionamiento del sensor de imagen, que hace posible la captura de la imagen. Una
de las preocupaciones primarias del procesamiento digital de imágenes es aumentar
la calidad de la imagen y moderar la degradación introducida por los sensores y
dispositivos de adquisición. Las técnicas de restauración de imágenes están
interesadas primariamente por reconstruir o recobrar una imagen que ha sido
degradada.
Existen distintos tipos de algoritmos que permiten la reducción del ruido y/o efectos
espurios que pueden presentarse en una imagen a consecuencia del proceso de
captura, digitalización y transmisión.
5. ¿Qué es filtro mediana y cómo se implementa en Matlab?
El filtro mediano es una operación no lineal que se utiliza con frecuencia en el
procesamiento de imágenes para reducir el ruido de "sal y pimienta". Un filtro
mediano es más eficaz que la convolución cuando el objetivo es reducir el ruido y
conservar los bordes. En Matlab se con el código B = medfilt2 (A), esta función
realiza el filtrado mediano de la matriz A en dos dimensiones. Cada píxel de salida
contiene el valor mediano en una vecindad 3 por 3 alrededor del píxel
correspondiente en la imagen de entrada.
6. ¿Para qué sirven los filtros de suavizado en una imagen?
Los filtros de suavizado son filtros en el dominio de la frecuencia. Los filtros de
suavizado son filtros que se especifica que componentes de frecuencia deben ser
eliminados en la imagen.
7. ¿Cuál es la diferencia entre ruido gaussiano y ruido de sal y pimienta?

El ruido gaussiano es un ruido estadístico que tiene una función de densidad


probabilística, igual a la de la distribución normal. En otras palabras, los valores
que el ruido puede tomar son distribuciones de Gauss. Estos ruidos son ocurridos
por fenómenos electromagnéticos.

Una imagen que contiene ruido de sal y pimienta tendrá píxeles oscuros en
regiones brillantes y píxeles brillantes en regiones oscuras. Este tipo de ruido
puede ser causado por errores de convertidor analógico-digital, errores de bit en
la transmisión, etc.

8. Explique diferentes técnicas de segmentación de imágenes

La principal técnica de segmentación es la detección de bordes, la cual es una


herramienta fundamental en el procesamiento de imágenes y en visión por
computadora, particularmente en las áreas de detección y extracción de
características, que tiene como objetivo la identificación de puntos en una imagen
digital en la que el brillo de la imagen cambia drásticamente o, más formalmente,
tiene discontinuidades.
La detección de los cambios bruscos de brillo de la imagen tiene como objetivo
capturar eventos importantes y cambios en las propiedades del mundo. Se puede
demostrar que, bajo supuestos bastantes generales para un modelo de formación de
la imagen, las discontinuidades en el brillo de la imagen se corresponden con mayor
probabilidad a:
 discontinuidades en la profundidad,
 discontinuidades en la orientación de las superficies,
 cambios en las propiedades del material y
 variaciones en la iluminación de la escena.
9. ¿Qué es reconstrucción morfológica?
La reconstrucción morfológica es muy utilizada y conocida en el procesamiento de
imágenes binarias, donde simplemente se extraen las componentes conectadas de
una imagen, a partir de una imagen marcador. Esto se realiza por medio de un
operador denominado Reconstrucción, este operador también puede ser definido en
imágenes con niveles de gris, pudiéndose utilizar en distintas etapas del
procesamiento de imágenes como filtrado, segmentación o extracción de
características.
10. ¿Qué tipos de funciones morfológicas existen y cómo funcionan?
Las operaciones primarias morfológicas son la erosión y la dilatación. A partir de
ellas podemos componer las operaciones de apertura y clausura. Son estas dos
operaciones las que tienen mucha relación con la representación de formas, la
descomposición y la extracción de información.

Dilatación Binaria
Dada una imagen A, y un elemento estructural B, teniendo en cuenta que A y B
deben ser imágenes binarias con fondo blanco, la dilatación de A por B está definida
como:

𝐴 ⊕ 𝐵 = {𝑥 𝑡𝑎𝑙 𝑞𝑢𝑒 (𝐵̂ )𝑥 ∩ 𝐴 ≠ ∅}

En la práctica los conjuntos A y B no son simétricos. El primer elemento de la


dilatación, A, está· asociado con la imagen que se está procesando y el segundo
recibe el nombre de elemento estructural, la forma que actúa sobre A en la dilatación
para producir 𝐴 ⊕ 𝐵
Erosión binaria
La erosión es la operación morfológica dual de la dilatación. Es la transformación
morfológica que combina dos conjuntos usando el concepto de inclusión. Dada una
imagen A, y un elemento estructural B, (ambos imágenes binarias con fondo blanco),
la erosión de una imagen, A, por un elemento estructural, B, es el conjunto de todos
los elementos x para los cuales B trasladado por x está· contenido en A:

𝐴 ⊕ 𝐵 = {𝑥 𝑡𝑎𝑙 𝑞𝑢𝑒 (𝐵̂ )𝑥 ∩ 𝐴 ≠ ∅}

La erosión se concibe usualmente como una reducción de la imagen original. La


dilatación y la erosión son muy similares en el sentido de que lo que uno hace al
objeto el otro lo hace al fondo.
CONCLUSIONES

 Se mejoraron los conocimientos y el manejo del programa matlab, ya que se


utilizó como medio de procesamiento de matrices y como es sabido una
imagen digitalizada es una matriz de MxN.
 Comparamos y ejecutamos técnicas de separación de objetos de una
imagen con el uso de matlab
 Manejamos y elegimos diferentes tipos de filtros como solución al
mejoramiento de una imagen digital.
 Realizamos, binarizamos y reconstruimos morfológicamente los objetos de
interés en la imagen procesada.
REFERENCIAS BIBLIOGRAFICAS
Bovik, A. C. (2009). The Essential Guide to Image Processing. Amsterdam: Academic
Press, 2009. eBook Collection (EBSCOhost), pp. 1 - 123. Recuperado
de: http://bibliotecavirtual.unad.edu.co:2048/login?user=proveedor&pass=danue0a
0&url=http://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nlebk&A
N=249002&lang=es&site=ehost-live
Bovik, A. C. (2005). Handbook of Image and Video Processing. Amsterdam: Academic
Press, 2005. eBook Collection (EBSCOhost), pp. 4 – 12. Recuperado
de: http://bibliotecavirtual.unad.edu.co:2048/login?user=proveedor&pass=danue0a0
&url=http://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nlebk&A
N=214674&lang=es&site=ehost-live
Aguado, A. S. (2012). Feature Extraction and Image Processing for Computer Vision.
Oxford: Academic Press 2012. Available from: eBook Collection (EBSCOhost), pp. 542
- 600. Recuperado
de: http://bibliotecavirtual.unad.edu.co:2048/login?user=proveedor&pass=danue0a
0&url=http://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nlebk&A
N=477505&lang=es&site=ehost-live
https://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(procesamiento_de_im%C3%A
1genes)
PROCESAMIENTO DIGITAL DE IMAGENES
https://es.wikipedia.org/wiki/Procesamiento_digital_de_im%C3%A1genes

Rafael C. Gonzalez, Richard E. Woods: Digital Image Processing. Addison-Wesley,


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

Nobuyuki Otsu: A threshold selection method from grey level histograms. In: IEEE
Transactions on Systems, Man, and Cybernetics. New York 9.1979, S.62–
66. ISSN 1083-4419

González, R.C., Wintz, P. (1996). Procesamiento digital de imágenes. Addison-


Wesley.

Acharya, T., Ray, A. K. (2005). Image processing: principles and applications. John
Wiley & Sons.

https://es.wikipedia.org/wiki/M%C3%A9todo_del_valor_umbral#M%C3%A9todo_de
_Otsu

Alegre, E., Sánchez, L., Fernández, R. Á., Mostaza, J. C. (2003). Procesamiento


Digital de Imagen: fundamentos y prácticas con Matlab. Universidad de
León. ISBN 84-9773-052-6.
Rafael C. González, Richard E. Woods, Steven L. Eddins (2009). Digital image
processing using Matlab. González, Woods, & Eddins.
Técnicas de umbralización para el procesamiento digital de imágenes de GEMFoils
file:///C:/Users/TOSHIBA/Downloads/13271-30301-2-PB%20(1).pdf
B. Tamm, “Gas electron multipliers and a scanner for automated quality control”,
undergraduate Thesis, Massachusetts Institute of Technology, 2005. C. Altunbas, M.
Capéans, K. Dehmelt, J. Ehlers, J. Friedrich, I. Konorov, A. Gandi, S. Kappler, B.
Ketzer, R. De Oliveira, S. Paul, A. Placci, L. Ropelewski, F. Sauli, F. Simon, and M. van
Stenis, “Construction, test and commissioning of the triple-gem tracking detector for
Compass”, Nuclear Instruments and Methods in Physics Research A, vol. 490(1-2),
pp.177-203, 2002. [3]. B. Surrow, “The STAR Forward GEM Tracker”, Nuclear
Instruments and Methods in Physics Research A, vol. 617(1-3), pp. 196-198, 2010.

También podría gustarte