Post on 20-Feb-2018
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
1/14
LABORATORIO N5
Contents
LecturaFiltro MediaFiltrado ImagenFiltrado de Imagen con Ruido
Medias Horizontal Y VerticalFiltro GaussianoFiltrado de Imagen con RuidoFiltros No LinealesFiltro MinimoFiltro MaximoFiltrado Lineal y No Lineal
Lectura
im=imread('Lena_gray.jpg');im2=imread('circ.png');
figure,subplot(1,2,1),imagesc(im),colormap(gray),axis imagesubplot(1,2,2),imagesc(im2),axis image
Filtro Media
avg_3x3=ones(3)/9;avg_10x10=ones(10)/10^2;avg_50x50=ones(50)/50^2;
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
2/14
filt1=uint8(conv2(im2,avg_3x3,'same'));filt2=uint8(conv2(im2,avg_10x10,'same'));filt3=uint8(conv2(im2,avg_50x50,'same'));
figure,subplot(1,3,1),imagesc(filt1),colormap(gray),axis imagesubplot(1,3,2),imagesc(filt2),axis imagesubplot(1,3,3),imagesc(filt3),axis image
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
Filtrado Imagen
filt12=uint8(conv2(im,avg_3x3,'same'));
filt22=uint8(conv2(im,avg_10x10,'same'));filt32=uint8(conv2(im,avg_50x50,'same'));
figure,subplot(1,3,1),imagesc(filt12),colormap(gray),axis imagesubplot(1,3,2),imagesc(filt22),axis imagesubplot(1,3,3),imagesc(filt32),axis image
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
Warning: CONV2 on values of class UINT8 is obsolete.
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
3/14
Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
Filtrado de Imagen con Ruido
imgn=uint8(double(im)+randn(size(im))*20);
figure,
imagesc(imgn),colormap(gray),axis image
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
4/14
filt13=uint8(conv2(imgn,avg_3x3,'same'));filt23=uint8(conv2(imgn,avg_10x10,'same'));filt33=uint8(conv2(imgn,avg_50x50,'same'));
figure,subplot(2,2,1),imagesc(imgn),colormap(gray),axis imagesubplot(2,2,2),imagesc(filt13),axis imagesubplot(2,2,3),imagesc(filt23),axis image
subplot(2,2,4),imagesc(filt33),axis image
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
5/14
Medias Horizontal Y Vertical
f=ones(1,10)/10;
imga=uint8(conv2(im,f,'same'));
figure,imagesc(imga),colormap(gray),axis image
imgb=uint8(conv2(im,f','same'));
figure,imagesc(imgb),colormap(gray),axis image
figure,subplot(1,2,1),imagesc(imga),colormap(gray),axis imagesubplot(1,2,2),imagesc(imgb),colormap(gray),axis image
imgc=uint8(conv2(imga,f','same'));
figure,subplot(2,2,1),imagesc(imga),colormap(gray),axis imagesubplot(2,2,2),imagesc(imgb),colormap(gray),axis imagesubplot(2,2,3),imagesc(imgc),colormap(gray),axis imagesubplot(2,2,4),imagesc(filt22),colormap(gray),axis image
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
6/14
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
7/14
Filtro Gaussiano
gauss_3_s1=gauss_2D(3,0.05);gauss_50_s1=gauss_2D(50,0.05);gauss_100_s1=gauss_2D(100,0.05);
gauss_100_s2=gauss_2D(100,5);
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
8/14
gauss_100_s3=gauss_2D(100,20);gauss_100_s4=gauss_2D(100,2500);
figure,subplot(2,3,1),surfc(gauss_3_s1)subplot(2,3,2),surfc(gauss_50_s1)subplot(2,3,3),surfc(gauss_100_s1)subplot(2,3,4),surfc(gauss_100_s2)subplot(2,3,5),surfc(gauss_100_s3)subplot(2,3,6),surfc(gauss_100_s4)
filt1=uint8(conv2(im2,gauss_3_s1,'same'));filt2=uint8(conv2(im2,gauss_50_s1,'same'));filt3=uint8(conv2(im2,gauss_100_s1,'same'));
figure,subplot(2,3,1),imagesc(filt1),colormap(gray),axis imagesubplot(2,3,2),imagesc(filt2),colormap(gray),axis imagesubplot(2,3,3),imagesc(filt3),colormap(gray),axis image
filt4=uint8(conv2(im2,gauss_100_s2,'same'));
filt5=uint8(conv2(im2,gauss_100_s3,'same'));filt6=uint8(conv2(im2,gauss_100_s4,'same'));
subplot(2,3,4),imagesc(filt4),colormap(gray),axis imagesubplot(2,3,5),imagesc(filt5),colormap(gray),axis imagesubplot(2,3,6),imagesc(filt6),colormap(gray),axis image
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
9/14
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
Filtrado de Imagen con Ruido
filt12=uint8(conv2(imgn,gauss_3_s1,'same'));filt22=uint8(conv2(imgn,gauss_50_s1,'same'));filt32=uint8(conv2(imgn,gauss_100_s1,'same'));filt42=uint8(conv2(imgn,gauss_100_s2,'same'));filt52=uint8(conv2(imgn,gauss_100_s3,'same'));filt62=uint8(conv2(imgn,gauss_100_s4,'same'));
figure,subplot(2,3,1),imagesc(filt12),colormap(gray),axis imagesubplot(2,3,2),imagesc(filt22),colormap(gray),axis imagesubplot(2,3,3),imagesc(filt32),colormap(gray),axis imagesubplot(2,3,4),imagesc(filt42),colormap(gray),axis image
subplot(2,3,5),imagesc(filt52),colormap(gray),axis imagesubplot(2,3,6),imagesc(filt62),colormap(gray),axis image
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
10/14
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
Filtros No Lineales
imn_sp=noise_sp(im,0.2);
figure,subplot(2,2,1),imagesc(imn_sp),colormap(gray),axis image
fmed1=ordfilt2d(imn_sp,3,'med');subplot(2,2,2),imagesc(fmed1),axis image
fmed2=ordfilt2d(imn_sp,25,'med');fmed3=ordfilt2d(imn_sp,50,'med');
subplot(2,2,3),imagesc(fmed2),axis imagesubplot(2,2,4),imagesc(fmed3),axis image
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
11/14
Filtro Minimo
img=rgb2gray(imread('pantera.jpg'));
figure,subplot(2,2,1),imagesc(img),colormap(gray)subplot(2,2,2),imhist(img)
img_fmin=ordfilt2d(img,10,'min');subplot(2,2,3),imagesc(img_fmin),colormap(gray)subplot(2,2,4),imhist(img_fmin)
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
12/14
Filtro Maximo
img2=rgb2gray(imread('rx_c.jpg'));
figure,subplot(2,2,1),imagesc(img2),colormap(gray)subplot(2,2,2),imhist(img2)
img_fmax=ordfilt2d(img2,10,'max');subplot(2,2,3),imagesc(img_fmax),colormap(gray)subplot(2,2,4),imhist(img_fmax)
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
13/14
Filtrado Lineal y No Lineal
imf1=uint8(conv2(imn_sp,avg_3x3,'same'));imf2=ordfilt2d(imn_sp,10,'med');imf3=ordfilt2d(imn_sp,3,'max');imf4=ordfilt2d(imn_sp,3,'min');
figure,
subplot(2,2,1),imagesc(imf1),colormap(gray),axis imagesubplot(2,2,2),imagesc(imf2),colormap(gray),axis imagesubplot(2,2,3),imagesc(imf3),colormap(gray),axis imagesubplot(2,2,4),imagesc(imf4),colormap(gray),axis image
Warning: CONV2 on values of class UINT8 is obsolete. Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
7/24/2019 Procesamiento Digital de Imagenes - Lab #5
14/14
Publi shed with MATLAB 7.12