Sunteți pe pagina 1din 15

Centro de Investigaciones en Optica

Procesamiento de imagenes de los fotorreceptores


retinianos

Reporte de Practicas en Ingeniera Fsica


Alumno
Olaf Duran Nava
olaf.duran@gmail.com
Asesores
Dr. Daniel Malacara Hernandez
dmalacara@cio.mx
M. en C. Carlos Alejandro Vargas
cvargas@correo.uam.azc.mx

Resumen
Recientemente metodos en o
ptica adaptativa(OA) han perimitido obtner im
agenes de
elementos como los fotorreceptores para ser estudiados in vivo. Las im
agenes de alta resoluci
on obtenidas a traves de metodos de OA contienen gran cantidad de informaci
on,
misma que es difcil de procesar usando metodos manuales. De esta manera, en este trabajo se explora la aplicaci
on de algoritmos a las im
agenes con el objetivo de dise
nar un
metodo aut
omatico de segmentaci
on, esto u
ltimo con el fin de procesar la informaci
on de las
R 1
im
agenes. Los algoritmos fueron implementados en M AT LAB
, y se probaron distintos
kernels para la detecci
on de bordes a traves de la convoluci
on. Se concluy
o que la representaci
on del Laplaciano discreto de dimensiones 7 7 es el m
as adecuado, y se complement
o
su utilizaci
on con operaciones morfol
ogicas.

1 MATLAB

es una marca registrada de The Mathworks Inc.

Indice

Indice

1. Introducci
on

2. Procesamiento de imagen
2.1. Filtrado espacial . . . . . .
2.2. Convoluci
on . . . . . . . . .
2.3. Morfologa matem
atica . . .
2.3.1. Traslaci
on . . . . . .
2.3.2. Reflexi
on . . . . . .
2.3.3. Dilataci
on y erosi
on

.
.
.
.
.
.

4
4
5
5
5
6
6

3. Metodologa y Resultados
3.1. El operador Laplaciano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Operaciones morfol
ogicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Apertura y Cerradura . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7
7
9
10

4. Conclusi
on

11

Referencias

12

A. C
odigo de los algoritmos implementados en MATLAB

13

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

1.

Introducci
on

Los avances en los metodos de imaginologa por optica adaptativa han permitido obtener imagenes de alta resoluci
on, con lo que se han logrado mejoras mediante la aplicacion de estos metodos
para el di
agnostico de patologas retinianas. En este sentido, el desafo consiste en el analisis
efectivo de las im
agenes tomando en cuenta las caractersticas fisiologicas y las limitaciones de
los sistemas ingenieriles.
En este trabajo se presentan los resultados de la implementacion de distintos algoritmos para la
detecci
on de objetos, en las im
agenes, los cuales son de gran interes para el diagnostico medico.
Cabe resaltar que la combinaci
on adecuada de los metodos, que a continuacion se describiran,
corresponde a la detecci
on de patrones en las imagenes estudiadas. Es importante destacar que
las im
agenes procesadas aqu fueron obtenidas mediante metodos de optica adaptativa en la
Universidad de Rochester.
A continuaci
on se presentar
a una breve introduccion teorica de los metodos utilizados en este
trabajo.

2.

Procesamiento de imagen

El procesamiento de imagen consiste en cambiar la naturaleza de la imagen tanto para aumentar


su informaci
on pict
orica para la interpretacion humana, como para el aumento en la percepcion
de m
aquinas aut
onomas.
Una imagen puede ser definida como una funcion de dos variables f (x, y), donde x y y corresponden a las coordenadas espaciales, y donde la amplitud de la funcion f en cada uno de los
pares de coordenadas (x, y) es conocida como intensidad o escala de grises de la imagen en ese
punto [1]. Cuando x, y y la amplitud de los valores de f son finitos, y cantidades discretas,
se puede decir que se trata de una imagen digital. Es de notarse que una imagen digital esta
compuesta por una cantidad finita de elementos, cada uno de los cuales tiene una posicion y
valor particulares. A dichos elementos se los conoce como pixel [1]. Pixel es el termino mas usado
para donotar los elementos de una imagen digital.

2.1.

Filtrado espacial

El filtrado espacial consiste en la aplicacion de una funcion a cada uno de los vecinos de cada
pixel [1, 3]. La idea b
asica consiste en mover una m
ascara o kernel (rectangulo de dimensiones
especficas) a traves de la imagen proporcionada. Al realizar este proceso se crea una nueva
imagen cuyos pixeles obtienen nuevos valores en la escala de grises, calculados a traves de los
valores de la m
ascara[1, 2]. A la combinacion de la imagen y la mascara se le conoce como filtro.
Si la funci
on con la cual se calculan los nuevos valores en la escala de grises es una funcion
lineal para cada uno de los valores de la mascara, entonces se puede decir que se trata de un
filtro lineal [1].
Un filtro lineal puede ser implementarse por la multiplicacion de cada uno de los elementos en
la m
ascara por los correspondientes elementos vecinos, y tomando la suma de cada uno de los
productos.

En general, el filtrado lineal de una imagen f de tama


no M N con una mascara de tama
no
m n est
a dado por la expresi
on [1, 3]
g(x, y) =

a
b
X
X

w(s, t)f (x + s, y + t)

(1)

s=a t=b

donde a = (m 1)/2 y b = (n 1)/2. De esta manera se puede decir que el filtrado espacial
requiere de 3 pasos:
Posicionar la imagen en el pixel correspondiente,
Realizar cada uno de los productos de los elementos del filtro con los correspondientes
elementos vecinos,
Sumar todos los productos.
Esto debe realizarse para cada uno de los pixeles de la imagen.

2.2.

Convoluci
on

Una operaci
on fuertemente relacionada con el filtrado espacial es la convoluci
on. El metodo para
realizar la convoluci
on consiste en el mismo principio que el de filtrado espacial, con la excepcion
de que se hace rotar la m
ascara 180 antes de multiplicarla y hacer la suma. Haciendo uso de
la notaci
on antes descrita w(s, t) y f (x, y) [1, 3], una expresion para la convolucion entre una
imagen f de tama
no M N con una mascara w de tama
no m n es la siguiente [1, 5]:
g(x, y) =

b
a
X
X

w(s, t)f (x + s, y + t)

(2)

s=a t=b

donde a = (m 1)/2 y b = (n 1)/2 como antes. Notese los signos negativos en los ndices de
w. El mismo resultado puede obtenerse con la expresion [1]
g(x, y) =

b
a
X
X

w(s, t)f (x s, y t)

(3)

s=a t=b

A esta propiedad se le conoce como propiedad de conmutatividad. Aqu se hizo rotar los pixeles
de la imagen 180 en primera intancia. Esto, por su puesto, no afecta el resultado.

2.3.

Morfologa matem
atica

La morfologa matem
atica o simplemente morfologa, es una rama de del procesamiento de imagen la cual es particularmente u
til para analizar formas en imagenes. Dicha herramienta se
utiliza con mayor frecuencia en im
agenes binarias, pero su uso puede extenderse a imagenes con
escala de grises.
2.3.1.

Traslaci
on

Supongamos que A es un conjunto de pixeles en una image binaria, y que w = (x, y) son las
coordenadas de un punto en particular. De esta manera Aw corresponde al conjunto A trasladado
en la direcci
on (x, y) [1]. Esto es
Ax = {(a, b) + (x, y) : (a, b) A}
5

(4)

2.3.2.

Reflexi
on

Consideremos nuevamente el conjunto de pixeles A. La reflexion denotada como A se obtiene


reflejando A con respecto a su origen [1]
A = {(x, y) : (x, y) A}
2.3.3.

(5)

Dilataci
on y erosi
on

Estas
son las operaciones m
as b
asicas en morfologa matematica, en el sentido de que todas las
dem
as operaciones est
an construidas a partir de la combinacion de estas dos.
Dilataci
on
Suponemos que A y B son dos conjuntos de pixeles. Entonces la dilataci
on de A y B, denotada
como A B se define como [1]
[
AB =
Ax
(6)
xB

Lo que esta expresi


on significa es que cada punto x B, se traslada el n
umero de coordenadas
proporcionado por el elemento A. Luego se toman las uniones de todas esas traslaciones. Una
definici
on equivalente es [1]
A B = {(x, y) + (u, v) : (x, y) A, (u, v) B}

(7)

De esta u
ltima definici
on se puede ver que la dilatacion es conmutativa
AB =BA

(8)

Erosi
on
Dados los conjuntos A y B, la erosi
on de A por B, denotada por A B se define como [1]
A B = {w : Bw A}

(9)

Es decir, la erosi
on de A por B consiste en todos los puntos w = (x, y) para los cuales Bw
est
a en A. Para llevar a cabo una erosion, se puede mover B alrededor de A, y buscar todos
los puntos donde concuerda con los pixeles vecinos, y para cada uno de esos lugares marcar el
correspondiente (0, 0) punto de B. El conjunto de dichos puntos es la erosion.
La erosi
on est
a relacionada con la resta de Minkowski [1, 3] La resta Minkowski de B y A esta
definida como
\
AB =
Ab
(10)
bB

3.

Metodologa y Resultados

En esta secci
on se presenta la implementacion de los algoritmos antes descritos en imagenes
de la retina obtenidas en la Universidad de Rochester. Dicha implementacion se hizo mediante
guiones en MATLAB, los cuales se pueden revisar en el apendice A.

3.1.

El operador Laplaciano

Un metodo para la detecci


on de bordes en imagenes se obtiene considerando la segunda derivada.
La suma de las segundas derivadas en ambas direcciones se conoce como Laplaciano [1, 2], el
cual, para una funci
on(imagen) f (x, y) de dos variables, se define como
2 f =

2f
2f
+
x2
y 2

(11)

En general las derivadas de cualquier orden son operaciones de tipo lineal. Por lo tanto se dice
que el Laplaciano es un operador lineal.
Para que esta ecuaci
on pueda ser u
til, en el procesamiento digital de imagenes, es necesario
representarla de manera discreta como se puede apreciar en la Fig.1.

0
0

0
0

0
1
2
1
0

1
0
0
2 1
0
16 2 1
2 1
0
1
0
0

0
0
1
1
1
0
0

0
1
3
3
3
1
0

1
3
0
7
0
3
1

1
3
7
24
7
3
1

1
3
0
7
0
3
1

0
0
1
0

3 1

3 1

3 1

1
0
0
0

(b)

(a)

Figura 1: Representaci
on de laplacianos discretos.(a) Sombrero mexicano de 5 x 5. (b) Sombrero
mexicano de 7 x 7

A estas u
ltimas matrices se les conoce como el Laplaciano discreto [2]. Debido a la apariencia
de estos kernels cuando se grafican en vista isometrica se les conoce tambien como Sombreros
mexicanos. Esta funci
on corresponde a la segunda derivada de una funcion Gaussiana. En la
Fig. 3 [2] se puede ver la representacion en tiempo continuo del operador Laplaciano a distintas
amplitudes e intervalos. Cabe se
nalar que para la representacion en tiempo discreto, esto se
logra con matrices de distintos tama
nos como las que se muestran en las Fig. 1 y 2. [2]
Ahora bien, a continuaci
on analizaremos el efecto del operador Laplaciano antes descrito a traves
de la operaci
on de convoluci
on de las matrices con las imagenes originales de la retina. La ecuaci
on (11) se implementa usando las mascaras que se muestran en las Fig. 1 y 2. La mecanica de
la implementaci
on se observa a traves de la ecuacion (3).
Dado que el Laplaciano es un operador de derivacion, su uso destaca discontinuidades de niveles
de gris en una imagen y aten
ua regiones con variacion lenta en la escala de grises. Esto tiende a
producir im
agenes con lneas de borde grisaceo y otras discontinuidades, todas superpuestas en
fondos oscuros sin rasgos distintivos. Los rasgos oscuros pueden ser recuperados, y al mismo
7

0
0
0
0
0
0
0 1
0 1
1 2
1 2
1 2
0 1
0 1
0
0
0
0
0
0

0
0
2
2
3
3
4
3
3
2
2
0
0

0
1
2
3
3
3
2
3
3
3
2
1
0

0
1
3
3
1
4
6
4
1
3
3
1
0

1
2
3
3
4
14
19
14
4
3
3
2
1

1
2
4
2
6
19
24
19
6
2
4
2
1

1
2
3
3
4
14
19
14
4
3
3
2
1

0
1
3
3
1
4
6
4
1
3
3
1
0

0
1
2
3
3
3
2
3
3
3
2
1
0

0
0
0
0

0
0

1
0

1
0

2 1

2 1

2 1

1
0

1
0

0
0

0
0
0
0

0
0
2
2
3
3
4
3
3
2
2
0
0

Figura 2: Sombrero mexicano de 13 13

0.8

Magnitud

0.6

0.4

0.2

0.2

0.4
3

Figura 3: Representaci
on de los sombreros mexicanos en tiempo continuo
tiempo conservar el efecto de afilado del operador Laplaciano, con tan solo sumar la imagen
original y la imagen modificada por el Laplaciano.
Cabe resaltar que la elecci
on del Laplaciano correcto es de suma importancia. En efecto, si
la matriz utilizada posee coeficientes negativos al centro, entonces se debe restar, en lugar de
sumar la imagen modificada por el Laplaciano para obtener el efecto de afilado. Por lo tanto,
la forma m
as b
asica en la cual se utiliza el Laplaciano para el realce de imagenes es [1]

f (x, y) 2 f (x, y)
si el centro de la mascara posee coeficientes negativos
g(x, y) =
f (x, y) + 2 f (x, y)
si el centro de la mascara posee coeficientes positivos
(12)
En la Fig. 4(a) se muestra la imagen original de los fotorreceptores retinianos obtenida mediante
metodos de
optica adaptativa en la Universidad de Rochester. En la Fig. 4(b) se puede apreciar
el resultado de filtrar esta imagen con la mascara de la Fig. 1(a). La imagen de la figura 4(c)
8

(a)

(b)

(d)

(c)

(e)

Figura 4: Im
agenes de los fotorreceptores de la retina. (a) imagen original, (b) kernel de 5 5
actuando sobre la imagen original, (c) kernel de 7 7 actuando sobre la imagen original, (d)
kernel de 13 13 actuando sobre la imagen, (e) kernel de 17 17 actuando sobre la imagen.
representa la convoluci
on del filtro de la Fig. 1(b) con la imagen original. Lo mismo ocurre en
la Fig .4(d), donde se utiliz
o la m
ascara de la Fig. (2). Finalmente, el la Fig. 4(e) se utilizo una
matriz de 17 17, la cual no se incluye en el reporte.
Como puede observarse en la Fig. 4, a medida que se aumenta el tama
no de las mascaras, es
decir, el tama
no de las matrices, se hace mas evidente la deteccion de los bordes. Sin embargo,
tambien se puede apreciar que se va perdiendo la estructura de las celulas de la imagen original.
Cabe decir que el tama
no del kernel selecciona en base al tama
no de las zonas flourescentes, las
cuales definen el margen de cada una de las celulas, con el objetivo de reducir el nivel de ruido,
sin eliminar la estructura de la celula [4, 6]. En efecto, si el tama
no del kernel es muy peque
no,
el nivel de ruido no se reduce de manera significativa, y por el contrario, si el tama
no del kernel
es muy grande, la estructura de la celula se elimina [4, 6]. De esta manera, se puede concluir
que la utilizaci
on del kernel de 7 7, el cual se muestra en la Fig. 2(b), es el mas adecuado en
este caso, ya que, como se mencion
o antes, este filtro logra detectar los bordes de la imagen sin
eliminar la estructura de las celulas. Dicho resultado se puede apreciar en la Fig. 4(c).

3.2.

Operaciones morfol
ogicas

La mayora de las aplicaciones basadas en conceptos morfologicos, los cuales se discutieron en


la secci
on 2.3 implican im
agenes binarias. A pesar de ser operaciones muy basicas, dichas operaciones l
ogicas proporcionan un complemento significativo a la implementacion de algoritmos
para el procesamiento de imagen [1]. En primer lugar se definira en que consiste hacer un mapa
binario (binarizar) una imagen. La binarizacion es una operacion de umbral [1]. Despues de
9

(a)

(b)

(d)

(c)

(e)

Figura 5: Im
agenes de los fotorreceptores de la retina despues de aplicar las operaciones de: (a)
binarizaci
on, (b) erosi
on, (c) dilatacion, (d) apertura, (e) cerradura
haber usado los sombreros mexicanos, la imagen contiene valores de pixeles por debajo del cero,
donde el cruce por cero representa el borde de la celula. La operacion de binarizar fija todos los
valores de la imagen por debajo de uno a cero y todos los valores mayores o iguales a uno los
fija a uno, tal como se muestra en la Ec. (13) [4]. La operacion de binarizacion se muestra en la
Fig.5(a). En la Fig. 5(b) se muestra la operacion de erosion sobre la imagen binaria. En la Fig.
5(c) se muestra la operaci
on de dilatacion sobre la imagen binaria original.

1 f (x, y) 1
g(x, y) =
(13)

0 f (x, y) < 1

3.2.1.

Apertura y Cerradura

Como hemos podido observar, la operacion de dilatacion expande la imagen, mientras que la
operaci
on de erosi
on la encoge. A continuacion definiremos dos operaciones morfologicas igualmente importantes: la apertura y la cerradura. Generalmente la operacion de apertura alisa el
contorno de una imagen, rompe las uniones entre dos objetos conjuntos estrechos, y elimina
protuberancias finas [1]. La operacion de cerradura, por su parte, tiende tambien a alisar las
secciones de contorno, pero opuesto a la operacion de apertura, generalmente fusiona uniones
estrechas rotas y bordes estrechos, elimina peque
nos orificios, y llena huecos en los contornos [1].
La apertura del conjunto A por un elemento de estructuracion B, denotado como AB, se define
como [1]

10

A B = (A B) B

(14)

Por lo tanto, la apertura de A por B es la erosion de A por B, seguida de la dilatacion del


resultado por B.
De la misma manera, la cerradura de A por el elemento de estructuracion B, denotado por AB,
se define como [1]
A B = (A B) B

(15)

La ecuaci
on (15) nos dice que la cerradura de A por B es simplemente la dilatacion de A por B,
seguida por la erosi
on del resultado por B.
Las operaciones morfol
ogicas pueden ser utilizadas para construir filtros, similares en concepto,
como los descritos en la secci
on 2.1.

0
0
1
0
0

0
0
1
0
0

1
1
1
1
1

0
0
1
0
0

0
0
1
0
0

Figura 6: Elemento estructurador B


En la Fig. 5 (a) se muestra la binarizacion de la imagen original que se muestra en la Fig. 4 (a).
Para nuestro an
alisis se utiliz
o el elemento de estructuracion que se muestra en la Fig. 6 [2]. En
la Fig. 5 (d) se muestra el resultado de la operacion de apertura de la imagen binaria por el
elemento estructurador de la Fig. 6. En la Fig. 5 (e) se muestra el resultado de la cerradura de
la imagen binaria por el mismo elemento estructurador.

4.

Conclusi
on

En este trabajo se utilizaron algoritmos representativos de las tecnicas utilizadas para el realce
de im
agenes en el dominio espacial. En la primera parte del trabajo se emplearon mascaras con
el fin de detectar bordes en im
agenes de la retina. Dichos bordes corresponden a la estructura
de las celulas de los fotorreceptores retinianos. La implementacion se hizo a traves de la convoluci
on de dichas im
agenes con kernels que llamamos sombreros mexicanos. Se pudo notar que la
elecci
on de las m
ascaras se con base en el tama
no de las estructuras a detectar, y por lo tanto
en nuestro caso, podemos concluir que el kernel de 7 7 fue el mas efectivo.
Por otra parte se analiz
o el efecto de aplicar operaciones morfologicas a las mismas imagenes.
Fue posible notar que tanto la dilatacion como la erosion son operaciones que permiten la detecci
on de estructuras dentro de la imagen, o bien, se pueden emplear con el objetivo de alisar
o unir dichas estructuras.
Finalmente se puede afirmar que la utilizacion correcta de las tecnicas antes descritas, son el
fundamento en el dise
no de algoritmos, para la segmentacion de distintas estructuras en imagenes
obtenidas a partir de instrumentaci
on biomedica basada en optica adaptativa.

11

Referencias
[1] R. C. Gonz
alez and R. E. Woods, Digital Image Processing. Prentice Hall, 2nd edition,
(2002).
[2] J. C. Russ, The Image Processing Handbook. CRC Press, Sixth edition, (2011).
[3] G. P. Jes
us De La Cruz, Visi
on Por Computador. Im
agenes Digitales y Aplicaciones. Alfaomega, Segunda edici
on, (2008).
[4] P. Rangel-Fonseca, A. G
omez-Vieyra, D. Malacara-Hernandez, M. C. Wilson, D. R. Williams,
and E. A. Rossi, Automated segmentation of retinal pigment epithelium cells in fluorescence
adaptive optics images, J. Opt. Soc. Am. A 30, 2595-2604 (2013)
[5] http://www.mathworks.com/help/vision/ref/2dconvolution.html
[6] U. Michael, Sum and Difference Histograms for Texture Classification, Pattern Analysis
and Machine Intelligence, IEEE Transactions on , vol.PAMI-8, no.1, pp.118,125, Jan. 1986

12

Ap
endices
A.

C
odigo de los algoritmos implementados en MATLAB

.
%% Implementaci
on distintas m
ascaras sobre im
agenes usando la convoluci
on
%% Cargar imagen y m
ascara
clc; close all;
img = (imread(ImaRPE23.tif));
imagen = double(img);
mask = [];
% 5 x 5 Laplacian Kernel
Laplacian_kernel = [0 0 -1 0 0; 0 -1 -2 -1 0; -1 -2 16 -2 -1; 0 -1 -2 -1 0; 0 0 -1 0 0];
% 7 x 7 Mexican hat Kernel
Mexican_hat_kernel7 = [0 0 -1 -1 -1 0 0;
0 -1 -3 -3 -3 -1 0;
-1 -3 0 7 0 -3 -1;
-1 -3 7 24 7 -3 -1;
-1 -3 0 7 0 -3 -1;
0 -1 -3 -3 -3 -1 0;
0 0 -1 -1 -1 0 0];
% 13 x 13 Mexican hat Kernel
Mexican_hat_kernel13 = [0 0 0 0 0 -1 -1 -1 0 0 0 0 0;
0 0 0 -1 -1 -2 -2 -2 -1 -1 0 0 0;
0 0 -2 -2 -3 -3 -4 -3 -3 -2 -2 0 0;
0 -1 -2 -3 -3 -3 -2 -3 -3 -3 -2 -1 0;
0 -1 -3 -3 -1 -4 6 4 -1 -3 -3 -1 0;
-1 -2 -3 -3 4 14 19 14 4 -3 -3 -2 -1;
-1 -2 -4 -2 6 19 24 19 6 -2 -4 -2 -1;
-1 -2 -3 -3 4 14 19 14 4 -3 -3 -2 -1;
0 -1 -3 -3 -1 4 6 4 -1 -3 -3 -1 0;
0 -1 -2 -3 -3 -3 -2 -3 -3 -3 -2 -1 0;
0 0 -2 -2 -3 -3 -4 -3 -3 -2 -2 0 0;
0 0 0 -1 -1 -2 -2 -2 -1 -1 0 0 0;
0 0 0 0 0 -1 -1 -1 0 0 0 0 0];
% 17 x 17 Mexican hat Kernel
Mexican_hat_kernel17 = [0 0 0 0 0 0 -1 -1 -1 -1 -1 0 0 0 0 0 0;
0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0;
0 0 -1 -1 -1 -2 -3 -3 -3 -3 -3 -2 -1 -1 -1 0 0;
0 0 -1 -1 -2 -3 -3 -3 -3 -3 -3 -3 -2 -1 -1 0 0;
0 -1 -1 -2 -3 -3 -3 -2 -3 -2 -3 -3 -3 -2 -1 -1 0;
0 -1 -2 -3 -3 -3 0 2 4 2 0 -3 -3 -3 -2 -1 0;
-1 -1 -3 -3 -3 0 4 10 12 10 4 0 -3 -3 -3 -1 -1;
-1 -1 -3 -3 -2 2 10 18 21 18 10 2 -2 -3 -3 -1 -1;
-1 -1 -3 -3 -3 4 12 21 24 21 12 4 -3 -3 -3 -1 -1;
-1 -1 -3 -3 -2 2 10 18 21 18 10 2 -2 -3 -3 -1 -1;
13

-1 -1 -3 -3 -3 0 4 10 12 10 4 0 -3 -3 -3 -1 -1;
0 -1 -2 -3 -3 -3 0 2 4 2 0 -3 -3 -3 -2 -1 0;
0 -1 -1 -2 -3 -3 -3 -2 -3 -2 -3 -3 -3 -2 -1 -1 0;
0 0 -1 -1 -2 -3 -3 -3 -3 -3 -3 -3 -2 -1 -1 0 0;
0 0 -1 -1 -1 -2 -3 -3 -3 -3 -3 -2 -1 -1 -1 0 0;
0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0;
0 0 0 0 0 0 -1 -1 -1 -1 -1 0 0 0 0 0 0];
% selecci
on del kernel
mask = double(Mexican_hat_kernel17);
% Mostrar imagen
figure; imshow(img)
%% Algoritmo de la convoluci
on
clc; close all;
[M_imagen,N_imagen] = size(imagen); % Tama~
no de la imagen
[M_mask, N_mask] = size(mask); % Tama~
no de la m
ascara
M_w = (M_mask - 1)/2; N_w = (N_mask - 1)/2; %recorrido de la m
ascara
M_center = round(M_mask/2); N_center = round(N_mask/2); % Centro de la m
ascara
%M_center = (M_mask + 1)/2; N_center = round(N_mask/2); % Centro de la m
ascara
C = zeros(M_imagen, N_imagen); % Matriz de ceros para rellenar con la convoluci
on
for i = M_center: M_imagen - M_center + 1
for j = N_center: N_imagen - N_center + 1
C(i,j) = sum(sum(imagen(i - M_w:i + M_w, j - N_w: j + N_w).*fliplr(flipud(mask))));
end
end
%imshow(round(conv2(double(imagen),double(mask),same))== round(C))
%round(conv2(double(imagen),double(mask),same))== round(C)
%figure; imshow(img);
conv2(double(imagen),double(mask),same) == C
figure; imshow(C)
%figure; imshow(conv2(imagen,Mexican_hat_kernel17,same))
%% Morphological Operations
clc;close all;
% Binarizaci
on de la imagen
Binary_image = zeros(M_imagen, N_imagen);
for i = M_center: M_imagen - M_center + 1
for j = N_center: N_imagen - N_center + 1
if img(i,j) > 128
Binary_image(i,j) = 1;
end
end
end

14

%binary_image = (img > 128);


Binary_image == (img > 128);
figure; imshow(Binary_image);
%% Erosi
on de la imagen
clc;close all;
erosion_mask = [1 1 1; 1 1 1; 1 1 1];
Eroded_image = zeros(M_imagen, N_imagen);
[M_erosion_mask, N_erosion_mask] = size(erosion_mask);
M_esn_w = (M_erosion_mask - 1)/2; N_esn_w = (N_erosion_mask - 1)/2;
M_erosion_center = round(M_erosion_mask/2); N_erosion_center = round(N_erosion_mask/2);
for i = M_center: M_imagen - M_center + 1
for j = N_center: N_imagen - N_center + 1
if Binary_image(i - M_esn_w:i + M_esn_w, j - N_esn_w: j + N_esn_w)
== erosion_mask
Eroded_image(i,j) = 1;
else
Eroded_image(i,j) = 0;
end
end
end
%figure;imshow(Binary_image)
Eroded_image == bwmorph(Binary_image,erode)
figure;imshow(Eroded_image)
%% Dilataci
on de la imagen
close all;
dilation_mask = [1 1 1; 1 1 1; 1 1 1];
Dilated_image = zeros(M_imagen, N_imagen);
[M_dilation_mask, N_dilation_mask] = size(dilation_mask);
M_dlt_w = (M_dilation_mask - 1)/2; N_dilation_walk = (N_dilation_mask - 1)/2;
M_dilation_center = round(M_dilation_mask/2); N_dilation_center = round(N_dilation_mask/2);
for i = M_center: M_imagen - M_center + 1
for j = N_center: N_imagen - N_center + 1
if Binary_image(i,j)== 1
Dilated_image(i - M_dlt_w:i + M_dlt_w, j - N_dlt_w: j + N_dlt_w) = dilation_mask;
end
end
end
figure; imshow(Dilated_image)

15

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