K(i,j)=(Dc1-Da1)/(Dc-Da)+Da1;
ifI(i,j)>Dc
K(i,j)=(Db1-Dc1)/(Db-Dc)+Dc1;
end
end
end
end
subplot(1,2,1),imshow(K);
subplot(1,2,2),imshow(I);
3.解答:
命令窗口输出
代码
ex3.m文件代码:
clearall;
[a,map]=imread('LENA256.bmp');
I=ind2gray(a,map);
J=imadjust(I,[10/255105/255],[80/255180/255]);
figure
(1),subplot(2,2,1),imshow(I);
subplot(2,2,2),imshow(J);
subplot(2,2,3),imhist(I);
subplot(2,2,4),imhist(J);
J1=imadjust(J,[],[],0.6);
J2=imadjust(J,[],[],1);
J3=imadjust(J,[],[],1.5);
figure
(2),subplot(2,3,1),imshow(J1);
subplot(2,3,2),imshow(J2);
subplot(2,3,3),imshow(J3);
subplot(2,3,4),imhist(J1);
subplot(2,3,5),imhist(J2);
subplot(2,3,6),imhist(J3);
K=histeq(I);
figure(3),subplot(2,2,1),imshow(I);
subplot(2,2,2),imshow(K);
subplot(2,2,3),imhist(I,64);
subplot(2,2,4),imhist(K,64);
4.解答:
(1)
命令窗口输出
代码
ex4_1.m文件代码:
[a,map]=imread('LENA256.bmp');
I=ind2gray(a,map);
I1=imnoise(I,'salt&pepper',0.02);
I2=double(I1)/255;
hl=[1/91/91/9;1/91/91/9;1/91/91/9];
J1=conv2(I2,hl,'same');
J2=medfilt2(I2,[33]);
subplot(2,2,1),imshow(I);
subplot(2,2,2),imshow(I1);
subplot(2,2,3),imshow(J1);
subplot(2,2,4),imshow(J2);
(2)
命令窗口输出
代码
ex4_2.m文件代码:
[a,map]=imread('LENA256.bmp');
I=ind2gray(a,map);
I1=imnoise(I,'salt&pepper',0.02);
I2=double(I1)/255;
hl=[1/91/91/9;1/91/91/9;1/91/91/9];
J1=conv2(I2,hl,'same');
subplot(1,2,1),imshow(J1,[])
h=[010;1-41;010];J=conv2(J1,h,'same');K=J1-J;
subplot(1,2,2),imshow(K,[])
imwrite(J1,'a.bmp');
[I,map]=imread('a.bmp');
figure
(2);
subplot(1,2,1),imshow(I,map);
I=double(I);[IX,IY]=gradient(I);GM=sqrt(IX.*IX+IY.*IY);
OUT2=I;J=find(GM>=10);OUT2(J)=GM(J);
subplot(1,2,2),imshow(OUT2,map);
(3)
命令窗口输出
代码
ex4_3.m文件代码:
I=imread('LENA256.bmp');
subplot(2,2,1);imshow(I);
H1=fspecial('motion',20,45);
MotionBlur=imfilter(I,H1,'replicate');
subplot(2,2,2);imshow(MotionBlur);
H2=fspecial('disk',10);
blurred=imfilter(I,H2,'replicate');
subplot(2,2,3);imshow(blurred);
H3=fspecial('unsharp');
I=double(I)/255;
sharpened=filter2(H3,I,'same');
subplot(2,2,4);imshow(sharpened);
5.解答:
命令窗口输出
代码
ex5.m文件代码:
clearall;clc;
[I,map]=imread('LENA256.bmp');
noisy=imnoise(I,'gaussian',0.01);
imshow(noisy,map);
[MN]=size(I);
noisy1=double(noisy);
F=fft2(noisy1);fftshift(F);
foru=1:
M
forv=1:
N
D(u,v)=sqrt(u^2+v^2);
BUTTERH(u,v)=1/(1+(sqrt
(2)-1)*(D(u,v)/100)^2);
end
end
BUTTERG1=BUTTERH.*F;BUTTERfiltered1=ifft2(BUTTERG1);
BUTTERfiltered1=abs(BUTTERfiltered1);
subplot(2,2,1),imshow(I,map);
title('0.原图');
subplot(2,2,2),imshow(noisy,map);
title('1.加入高斯噪声后');
subplot(2,2,3),imshow(BUTTERfiltered1,map);
title('2.巴特沃思低通滤波后');
BUTTERG2=BUTTERH.*BUTTERG1;BUTTERfiltered2=ifft2(BUTTERG2);
BUTTERfiltered2=abs(BUTTERfiltered2);
subplot(2,2,4),imshow(BUTTERfiltered2,map)
title('3.巴特沃思高通滤波后');