数字图像处理实验四图像频域增强
一、實驗目的
(1)了解圖像增強的目的及意義,加深對圖像增強的感性認識,鞏固所學的圖像增強的理論知識和相關算法。
(2)熟練掌握低通、高通、帶通、同態濾波器的使用方法,明確不同性質的濾波器對圖像的影響和作用。
二、實驗內容
(1)選擇合適的灰度圖像,添加隨機噪聲
(2)對圖像進行低通濾波,觀察濾波效果
(3)選擇一灰度圖像,進行高通濾波,觀察濾波效果
(4)選擇合適的灰度圖像,進行帶通濾波,觀察濾波效果
(5)選擇合適的數字圖像,進行同態濾波,觀察濾波效果
三、實驗代碼及結果、分析
(1)選擇合適的灰度圖像,添加隨機噪聲
- 代碼:
I=imread('E:\大三課件\大三下\數字圖像處理\實驗\實驗四\shiyan4.jpg');
I1=rgb2gray(I);
I2=imnoise(I1,'gaussian',0.03); ??????%加均值為0,方差為0.03的高斯噪聲
I3=double(I2);
fft_I=fft2(I2); ????????% 二維離散傅立葉變換
shift_I=fftshift(fft_I); ???% 直流分量移到頻譜中心
[M,N]=size(shift_I);
m=floor(M/2);
n=floor(N/2);
figure(1)
subplot(1,3,1),imshow(I),title('原圖像');
subplot(1,3,2),imshow(I1),title('灰度圖像');
subplot(1,3,3),imshow(I2),title('加入高斯噪聲'); ?????%顯示有高斯噪聲圖像
- 結果:
- 分析:
(2)選擇一灰度圖像,進行低通濾波,觀察濾波效果
- 代碼
%低通濾波
level=4;%2級巴特沃斯濾波器 2時接近高斯,5時接近理想,但是數值更大時會有模糊效應
d1=20;
d2=50;%截止半徑
d3=300;
%巴特沃斯低通濾波
for?i=1:M
????for?j=1:N
???????d=sqrt((i-m)^2+(j-n)^2);
???????h11=1/(1+0.414*(d/d1)^(2*level));
???????h12=1/(1+0.414*(d/d2)^(2*level));
???????h13=1/(1+0.414*(d/d3)^(2*level));
??????result11(i,j)=h11*shift_I(i,j);
??????result12(i,j)=h12*shift_I(i,j);
??????result13(i,j)=h13*shift_I(i,j);
????end
end
result111=uint8(real(ifft2(ifftshift(result11))));
result112=uint8(real(ifft2(ifftshift(result12))));
result113=uint8(real(ifft2(ifftshift(result13))));
%高斯低通濾波
for?i=1:M
????for?j=1:N
???????d=sqrt((i-m)^2+(j-n)^2);
???????h21=exp(-1/2*(d^2/d1^2));
???????h22=exp(-1/2*(d^2/d2^2));
???????h23=exp(-1/2*(d^2/d3^2));
???????result21(i,j)=h21*shift_I(i,j);
???????result22(i,j)=h22*shift_I(i,j);
???????result23(i,j)=h23*shift_I(i,j);
????end
end
result121=uint8(real(ifft2(ifftshift(result21))));
result122=uint8(real(ifft2(ifftshift(result22))));
result123=uint8(real(ifft2(ifftshift(result23))));
figure(2)
subplot(2,3,1),imshow(result111),title('巴特沃斯低通濾波d=20');
subplot(2,3,2),imshow(result112),title('巴特沃斯低通濾波d=50');
subplot(2,3,3),imshow(result113),title('巴特沃斯低通濾波d=300'); ???????
subplot(2,3,4),imshow(result121),title('高斯低通濾波d=20');
subplot(2,3,5),imshow(result122),title('高斯低通濾波d=50');
subplot(2,3,6),imshow(result123),title('高斯低通濾波d=300'); ??????
- 結果:
- 分析:
? ? ?1.巴特沃斯低通濾波器的傳遞函數為:h=1/(1+0.414*(d/d0)^(2*level));
?????高斯低通濾波器的傳遞函數為?:h=exp(-1/2*(d^2/d0^2));
(d0為截止半徑,level為巴特沃斯低通濾波器的階數)
(3)選擇一灰度圖像,進行高通濾波,觀察濾波效果
- 代碼:
%高通濾波
level=4;%2級巴特沃斯濾波器 2時接近高斯,5時接近理想,但是數值更大時會有模糊效應
d1=2;
d2=4;%截止半徑
d3=8;
%巴特沃斯高通濾波
for i=1:M
????for j=1:N
???????d=sqrt((i-m)^2+(j-n)^2);
???????h11=1/(1+0.414*(d1/d)^(2*level));
???????h12=1/(1+0.414*(d2/d)^(2*level));
???????h13=1/(1+0.414*(d3/d)^(2*level));
??????result11(i,j)=h11*shift_I(i,j);
??????result12(i,j)=h12*shift_I(i,j);
??????result13(i,j)=h13*shift_I(i,j);
????end
end
result111=uint8(real(ifft2(ifftshift(result11))));
result112=uint8(real(ifft2(ifftshift(result12))));
result113=uint8(real(ifft2(ifftshift(result13))));
%高斯高通濾波
for i=1:M
????for j=1:N
???????d=sqrt((i-m)^2+(j-n)^2);
???????h21=1-exp(-1/2*(d^2/d1^2));
???????h22=1-exp(-1/2*(d^2/d2^2));
???????h23=1-exp(-1/2*(d^2/d3^2));
???????result21(i,j)=h21*shift_I(i,j);
???????result22(i,j)=h22*shift_I(i,j);
???????result23(i,j)=h23*shift_I(i,j);
????end
end
result121=uint8(real(ifft2(ifftshift(result21))));
result122=uint8(real(ifft2(ifftshift(result22))));
result123=uint8(real(ifft2(ifftshift(result23))));
figure(1)
subplot(1,3,1),imshow(I),title('原圖像');
subplot(1,3,2),imshow(I1),title('灰度圖像');
subplot(1,3,3),imshow(I2),title('加入高斯噪聲'); ????????%顯示有高斯噪聲圖像
figure(2)
subplot(2,3,1),imshow(result111),title('巴特沃斯高通濾波d=20');
subplot(2,3,2),imshow(result112),title('巴特沃斯高通濾波d=50');
subplot(2,3,3),imshow(result113),title('巴特沃斯高通濾波d=300'); ???????
subplot(2,3,4),imshow(result121),title('高斯高通濾波d=20');
subplot(2,3,5),imshow(result122),title('高斯高通濾波d=50');
subplot(2,3,6),imshow(result123),title('高斯高通濾波d=300'); ????
- 結果:
- 分析:
????1、巴特沃斯高通濾波器的傳遞函數為:h=1/(1+0.414*(d0/d)^(2*level));
???????高斯高通濾波器的傳遞函數為?:h=1-exp(-1/2*(d^2/d0^2));
? ? 2、圖像的大部分能量集中在低頻分量,高通濾波會將很多低頻分量濾除,導致增強圖中邊緣得到加強,但光滑區域灰度減弱變暗甚至接近黑色
? ? 3、截止半徑越大,圖像越接近黑色,導致圖像的輪廓也不太清晰
(4)選擇合適的灰度圖像,進行帶通濾波,觀察濾波效果
- 代碼:
%帶通濾波
dl=0.5;
dh=50;%截止半徑
for i=1:M
????for j=1:N
???????d=sqrt((i-m)^2+(j-n)^2);
????????if d<=dl || d>=dh
?????????????h=0;
????else
????????h=1;
????????end
?????result(i,j)=h*shift_I(i,j);
????end
end
result1=uint8(real(ifft2(ifftshift(result))));
figure(2)
subplot(1,2,1),imshow(I2),title('高斯噪聲圖像');
subplot(1,2,2),imshow(result1),title('帶通濾波后圖像');
- 結果:
?????????? ? ?
- 分析:
1、帶通濾波器的傳遞函數為H=1 (dl<d<dh), H=0(d=其他)
2、帶通濾波器可增強既不是圖像中的高頻成分也不是低頻成分
?
(5)選擇合適的灰度圖像,進行同態濾波,觀察濾波效果
- 代碼:
P = 2*M; Q = 2*N;
I2 = zeros(P,Q);
for i = 1:M
????for j =1:N
????????I2(i,j) = I(i,j); ?%對圖像進行填充
????end
end
I2=log(I2+1); ???%取對數
FI=fft2(I2); ???%傅里葉變換
rL=1.0; ???%rl越靠近1,越亮
rH=1.1; ????% 可根據需要效果調整參數 ,rh越大,背景越亮
c=100; ??????%銳化參數,越大,銳化程度越大
D0=1; ?%D0越小,越亮
for u=1:P
????for v=1:Q
????????D(u,v)=sqrt(((u-M).^2+(v-N).^2)); ?%頻率域中點(u,v)與頻率矩形中心的距離 ??????
????????H(u,v)=(rH-rL).*(1-exp(-c.*(D(u,v)^2./D0^2)))+rL; %高斯同態濾波
????end
end
H=ifftshift(H); ?%對H做反中心化
I3=ifft2(H.*FI); ?%傅里葉逆變換
I4=real(I3);
result =exp(I4(1:M, 1:N))-1; ?%截取一部分,,取指數
figure(1)
subplot(1,3,1),imshow(im),title('灰度圖像');
subplot(1,3,2),imshow(In),title('高斯噪聲圖像');
subplot(1,3,3),imshow(result),title('同態濾波圖像');
- 結果:
- 分析:
總結
以上是生活随笔為你收集整理的数字图像处理实验四图像频域增强的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用gitbash上传项目到github
- 下一篇: 创作表情包(备用)