Sei sulla pagina 1di 18

Universidad Tecnolgica Nacional

Facultad de Regional Buenos Aires


Carrera: Ingeniera Electrnica

MATLAB

CLASE III
Es ms fcil escribir un programa incorrecto,
que entender uno correcto Alan Perlis
2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Agenda

Procesamiento de Imgenes.

Introduccin.

Leer una Imagen.

Parmetros y Operaciones.

Filtros.

Operaciones Morfolgicas.

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
Introduccin:
a. MatLab puede leer imgenes en los distintos
formatos.
b. Guardarlos en el formato de origen o en otro
formato. Posee un formato propio PNG (Portable
Network Image)
c. La Toolbox permite realizar operaciones de tales
como:

FRBA

Ecualizacin de Imgenes.
Filtrado.
Suma y resta de imgenes.
Operaciones Morfolgicas. Erosin, Dilatacin,
Deteccin de bordes.
Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 1:

>> I=imread(pout.tif)
>> size(I)
>> I
>> whos
>> imshow(I)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 1:

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 2:

>> C=imread(peppers.png)
>> size(C)
>> whos
>> clf
>> imshow(C)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 2:

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 2:

>> CplanoR = C(:,:,1) ;


>> size(CplanoR)
>> figure
>> imshow(CplanoR)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 2:

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 1:

>> [x, y] = meshgrid([1:240],[1:291])


>> z = double(I)
>> mesh(x, y,z)

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 1:

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 1:

>> imshow(I)
>> valor = impixel

Repetir con ejemplo 2

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
1. Leer una imagen.
Ejemplo 2:

>> improfile

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
2. Guardar una imagen.
Ejemplo 1:

>> imwrite( I, pout.png)


FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
3. Ecualizar una imagen.
Ejemplo 1:

>> figure, imhist(I)


>> I2 = histeq(I);
>> figure, imshow(I2)
>> figure, imhist(I2)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
4. Submuestrear una imagen.
Ejemplo 2:

>> imshow(C)
>> C2= C(1:2:end, 1:2:end, 1:end)
>> figure, imshow(C2)

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
4. Cambio de formato en los pixel.
Ejemplo 1:

>> imshow(I)
>> Idoble = double(I);
>> Idoble = 0.5*Idoble;
>> IU8 = uint8(Idoble)
>> figure, imshow(IU8)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrado espacial.
Imagen Original (io)

(i-1, j-1)

(i-1, j)

(i, j-1)

(i, j)

(i, j+1)

(i+1, j-1)

(i+1, j)

(i+1, j+1)

Imagen Filtrada (if)

(i-1, j+1)
(i, j)

w11
1
w21
h
w31

if i , j

FRBA

w12

w13

w21

w23

w32

w33

1
w11 * io i 1, j 1 w12 * io i 1, j w13 * io i 1, j
h
w21 * io i , j 1 w22 * io i , j w23 * io i , j
w31 * io i

1, j 1

w32 * io i

Informtica I

1, j

Filtro o Mscara

w33 * io i

1, j 1

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrado espacial. Correlacin - Convolucin
Imagen Original (io)
17

24

15

23
4

14

16

13

20

22

10

12

19

21

11

18

25

FRBA

Imagen Filtrada (ifc)

Filtro (h)

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrado espacial. Correlacin
>> clear, clc
>> io = [ 17 24 2 9]
>> h = [8 1 6; 3 5 7; 4 9 2]
>> ifc = imfilter(io, h)
5. Filtrado espacial. Convolucin
>> ifcn = imfilter(io, h,conv)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrado espacial. Convolucin
>> hr = [2 9 4; 7 5 3; 6 1 8]
>> ifcnr = imfilter(io, hr,conv)
>> ifc = imfilter(io, h)

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrar una imagen.
Ejemplo 3:

>> Io = imread('coins.png');
>> imshow(Io), title('Imagen Original')
>> h = ones(5,5)/25;
>> figure, imhist(I2)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrar una imagen.
Ejemplo 3:

>> Ifc= imfilter(Io, h);


>> imshow(Ifc), title('Imagen Filtrada Corr.')
>> Ifcn= imfilter(Io, h,'conv');
>> imshow(Ifcn), title('Imagen Filtrada Conv.')
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrar una imagen.
Ejemplo 4:

>> Ie = imread(moon.tif');
>> imshow(Ie), title('Imagen Original')
>> h = [ 0 0 1 0 0
00100
11111
00100
0 0 1 0 0]/9
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrar una imagen.
Ejemplo 4:

>> If= imfilter(Ie, h);


>> figure, imshow(If), title('Imagen Filtrada ')
>> Ifd = imsubtract(Ie, If);
>> figure, imshow(Ifd), title('Imagen Diferencia')
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrar una imagen.
Ejemplo 4:

>> Ifda= imadjust(Ifda);


>> figure, imshow(Ifda), title('Imagen Filtr. Eq ')
>> Ift = imadd(Ie, Ifda);
>> figure, imshow(Ift), title('Imagen Final')
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrar una imagen.
Ejemplo 5 Filtro Predefinido:

>> h1 = fspecial(unsharp)
>> Ifu = imfilter(Ie, h1);
>> figure, imshow(Ifu), title('Imagen Filtrada Unsharp')

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
5. Filtrar una imagen. Color
Ejemplo 6 :

>> C=imread(peppers.png)
>> imshow(C), title('Imagen Color)
>> h = ones(5,5)/25;
>> C2 = imfilter(C, h);
>>figure,imshow(C2),title('Imagen Color Filtrada)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:

Erosin.

Dilatacin.

Deteccin de bordes.

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Dilatacin:
Adiciona (realza el valor de un pixel en
funcin de sus vecinos) pixels en los
extremos del objeto de una imagen.
1

Elementos Estructurados

17

24

15

24

23

14

16

23

13

20

22

10

12

19

21

12

18

25

18

11

Imagen de Entrada
FRBA

24

Imagen de Salida
Informtica I

2010

10

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Dilatacin:
>> A=[17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9]

>> SE = strel(square, 3);

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Dilatacin:
>> A=[17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9]
>> SE = strel(square, 3)
>> Adil = imdilate(A, SE)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Dilatacin Ejemplo 7:
>> I=imread(pout.tif);
>> Idil = imdilate(A, SE);
>> SE1 = strel(square, 15);
>> Idil1 = imdilate(A, SE1);

FRBA

Informtica I

2010

11

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Dilatacin Ejemplo 7:
>> subplot(1,3,1), subimage(I),title('Original')
>> subplot(1,3,2), subimage(Idil), title('Dil 3*3')
>> subplot(1,3,3), subimage(Idil1),title('Dil 15*15')

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Erosin:
Quita (deprime el valor de un pixel en
funcin de sus vecinos) pixels en los
extremos del objeto de una imagen.
1

Elementos Estructurados

17

24

15

23

14

16

4
4

13

20

22

10

12

19

21

11

18

25

10

Imagen de Entrada
FRBA

Imagen de Salida
Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Erosin:
>> A=[17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9]
>> SE = strel(square, 3)
>> eroA = imerode(A, SE)
FRBA

Informtica I

2010

12

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Erosin Ejemplo 7:
>> I=imread(pout.tif);
>> Iero = imerode(A, SE);
>> Iero1 = imerode(A, SE1);
>> subplot(1,3,1), subimage(I),title('Original')
>> subplot(1,3,2), subimage(Iero), title('Erosin 3*3')

>> subplot(1,3,3), subimage(Iero1),title('Erosin 15*15')


FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Erosin - Dilatacin Ejemplo 8:
>> Cir=imread(circbw.tif);
>> imshow(Cir)
>> SE = strel('rectangle',[40 30]);
>> Cir1=imerode(Cir, SE);
>> imshow(Cir1)
>> Cir2=imdilate(Cir1, SE);
FRBA

>> imshow(Cir2)

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Skeletonizatin:

Reduce todo objeto en una imagen a lneas,


sin cambios esenciales en la estructura de
la imagen. Para este proceso denominado
esqueletizacin (skeletonization), se usa
la funcin bwmorph.

FRBA

Informtica I

2010

13

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Skeletonizatin Ejemplo 8:
>> Cir=imread(circbw.tif);
>> Cir1=bwmorph(Cir,'skel',Inf);
>> imshow(Cir1)
>> Cir2=bwperim(Cir);
>> imshow(Cir2)

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Skeletonizatin Ejemplo 9:
>> BW = imread('circles.png');
>> imshow(BW);
>> BW3 = bwmorph(BW,'skel',Inf);

>> figure, imshow(BW3)


>> BW2 = bwmorph(BW,'remove');
>> figure, imshow(BW2)
FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> I = imread(rice.png');
>> imshow(I);
>> BW3 = bwmorph(BW,'skel',Inf);
>> figure, imshow(BW3)
>> BW2 = bwmorph(BW,'remove');
>> figure, imshow(BW2)
FRBA

Informtica I

2010

14

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> I = imread(rice.png');
>> imshow(I);

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> fondo = imopen(I,strel('disk',15));
>> figure, imshow(fondo)

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> figure, surf(double(fondo(1:8:end, 1:8:end))),zlim([0 255]);
>> set(gca,'ydir','reverse');

FRBA

Informtica I

2010

15

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> I2 = imsubtract(I,fondo);
>> figure, imshow(I2)

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> I3 =imadjust(I2);
>> figure, imshow(I3)

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> nivel= graythresh(I3)
>> bn= im2bw(I3,nivel);
>> figure, imshow(bn)

FRBA

Informtica I

2010

16

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> [labeled, num_objetos]=bwlabel(bn, 4)
num_objetos =
101

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Procesamiento de Imgenes
6. Operaciones Morfolgicas:
Contar Objetos Ejemplo 10:
>> seudocolor=label2rgb(labeled,@spring,'c','shuffle');
>> imshow(seudocolor);

FRBA

Informtica I

2010

Es ms fcil escribir un programa incorrecto, que entender uno correcto

Preguntas
y
Respuestas

FRBA

Informtica I

2010

17

Es ms fcil escribir un programa incorrecto, que entender uno correcto

FIN

FRBA

Informtica I

2010

18

Potrebbero piacerti anche