整理实验三 频域增强.docx
《整理实验三 频域增强.docx》由会员分享,可在线阅读,更多相关《整理实验三 频域增强.docx(20页珍藏版)》请在冰豆网上搜索。
整理实验三频域增强
实验三傅里叶变换及频域增强
一.实验内容:
1、傅里叶变换性质
2、低通滤波
3、高通滤波
二.实验目的:
1、理解傅里叶变换的原理,掌握傅里叶变换的性质
2、掌握频域平滑原理,学会用理想低通滤波器、Butterworth低通滤波器、高斯低通滤波器进行图像处理。
3、掌握频域锐化原理,学会用理想高通滤波器、Butterworth高通滤波器、高斯高通滤波器进行图像处理。
三.实验步骤:
一、傅里叶变换性质
1.首先构造一幅黑白二值图像,在128×128的黑色背景中心产生一个4×4的白色方块,对其进行傅里叶变换;(Matlab中用fft2实现2D傅里叶变换)
2.把低频分量移到图象中心,而把高频分量移到四个角上;(方法有两种:
其一,在FT以前对测试图象逐点加权(-1)^(i+j);其二,利用FFTSHIFT函数);
3.利用图象增强中动态范围压缩的方法增强2DFT;(Y=C*log(1+abs(X)));
4.构造一幅黑白二值图像,在128×128的黑色背景中令第32行至36行、第32列至第36列的值为1(即产生一个4×4的白色方块),对其进行傅里叶变换;
5.将上图旋转300,再进行傅里叶变换(imrotate)
6.构造二幅黑白二值图像,在128×128的黑色背景中分别令第60行至68行、第60列至第68列的值为1,第64行至65行、第64列至第65列的值为1产生两幅图像,分别对这两幅图像进行傅里叶变换
程序如下:
clearall;
closeall;
clc;
f=zeros(128);
f(63:
66,63:
66)=1;
g=fft2(f);
m=fftshift(g);
y=log(1+abs(m));
f1=zeros(128);
f1(32:
36,32:
36)=1;
h=fft2(f1);
i=imrotate(h,30);
j=fft2(i);
f2=zeros(128);
f2(60:
68,60:
68)=1;
k=fft2(f2);
f3=zeros(128);
f3(64:
65,64:
65)=1;
l=fft2(f3);
figure;%1
subplot(2,2,1);imshow(f);title('templatef');
subplot(2,2,2);imshow(g);title('g=fft2(f)');
subplot(2,2,3);imshow(m);title('m=fftshift(g)');
subplot(2,2,4);imshow(y);title('y=log(1+abs(m))');
figure;%2
subplot(2,2,1);imshow(f);title('templatef');
subplot(2,2,2);imshow(g);title('g=fft2(f)');
subplot(2,2,3);imshow(f1);title('templatef1');
subplot(2,2,4);imshow(h);title('h=fft2(f1)');
figure;%3
subplot(2,2,1);imshow(f);title('templatef');
subplot(2,2,2);imshow(g);title('g=fft2(f)');
subplot(2,2,3);imshow(i);title('i=imrotate(h,30)');
subplot(2,2,4);imshow(j);title('j=fft2(i)');
figure;%4
subplot(2,3,1);imshow(f);title('templatef');
subplot(2,3,2);imshow(g);title('g=fft2(f)');
subplot(2,3,3);imshow(f2);title('templatef2');
subplot(2,3,4);imshow(k);title('k=ff2(f2)');
subplot(2,3,5);imshow(f3);title('templatef3');
subplot(2,3,6);imshow(l);title('l=fft2(f3)');
一、傅里叶变换性质
1、将前三步的图像在一个图像窗口显示,并且比较图像中心平移前后有什么区别,取对数前后又有什么区别;
图像分析:
低频分量移到图象中心,而高频分量移到四个角上。
经过对数变换后的图像,低频像素值变为0,高频像素值变为1.
2、将第1步和第4步的原图像及傅里叶变换后的图像在同一个图像窗口显示,比较其傅里叶变换后的图像,说明其中的原理;
图像分析:
图像经过傅里叶变换后,得到的是图像的频域,也就是频率成分;这个频率成分表示的意义就是相邻像素之间数值的变化,也就是说像素在空间上的变化越快,它对应在频域上的数值就越大;如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。
对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。
3、将第1步和第5步的原图像及傅里叶变换后的图像在同一个图像窗口显示,比较其傅里叶变换后的图像,说明其中的原理;
4、将第1步和第6步的原图像及傅里叶变换后的图像在同一个图像窗口显示,比较其傅里叶变换后的图像,说明其中的原理。
二、低通滤波
1、理想低通滤波器
(1)读取图像Fig4.11(a).jpg
(2)对图像逐点加权(-1)^(i+j)再进行傅里叶变换,使频域原点在图像区域的中心(或者先对图像进行傅里叶变换,在Matlab中利用FFTSHIFT函数使频域原点在图像区域的中心
(3)设计理想低通滤波器,取D0=5,15,30,80,230进行滤波
(4)进行傅里叶逆变换,取实部,乘以(-1)^(i+j),(或者在Matlab中利用ifftshift,再利用ifft2进行傅里叶逆变换),
(5)在同一图像窗口下显示原图像及D0=5,15,30,80,230进行滤波结果图像。
(Matlab中imshow(uint8(resultimage)))
程序如下:
clearall;
closeall;
clc;
f=imread('Fig4.11(a).jpg');
s=fftshift(fft2(f));
[m,n]=size(s);
a=round(m/2);b=round(n/2);
d1=5;d2=15;d3=30;d4=80;d5=230;
fori=1:
m
forj=1:
n
d=sqrt((i-a)^2+(j-b)^2);
ifd<=d1h1=1;
elseh1=0;
end
ifd<=d2h2=1;
elseh2=0;
end
ifd<=d3h3=1;
elseh3=0;
end
ifd<=d4h4=1;
elseh4=0;
end
ifd<=d5h5=1;
elseh5=0;
end
s1(i,j)=h1*s(i,j);
s2(i,j)=h2*s(i,j);
s3(i,j)=h3*s(i,j);
s4(i,j)=h4*s(i,j);
s5(i,j)=h5*s(i,j);
end
end
subplot(2,3,1),imshow(f),title('原始图像');
subplot(2,3,2),imshow(uint8(real(ifft2(ifftshift(s1))))),title('d=5');
subplot(2,3,3),imshow(uint8(real(ifft2(ifftshift(s2))))),title('d=15');
subplot(2,3,4),imshow(uint8(real(ifft2(ifftshift(s3))))),title('d=30');
subplot(2,3,5),imshow(uint8(real(ifft2(ifftshift(s4))))),title('d=80');
subplot(2,3,6),imshow(uint8(real(ifft2(ifftshift(s5))))),title('d=230');
可见,由理想低通滤波器所得到的处理结果,除了模糊外,还有明显的振铃现象。
这种现象产生的原因可以通过卷积定理来解释。
由卷积定理可知,傅里叶变换域的乘积关系与空间域的卷积关系相对应:
式中f(x,y),g(x,y),h(x,y)分别是F(u,v),G(u,v),
H(u,v)的傅里叶反变换。
2、Butterworth低通滤波
(1)读取图像Fig4.11(a).jpg
(2)对图像逐点加权(-1)^(i+j)再进行傅里叶变换,使频域原点在图像区域的中心(或者先对图像进行傅里叶变换,在Matlab中利用FFTSHIFT函数使频域原点在图像区域的中心
(3)设计二阶Butterworth低通滤波器,并取D0=5,15,30,80,230分别进行滤波
(4)进行傅里叶逆变换,取实部,乘以(-1)^(i+j),(或者在Matlab中利用ifftshift,再利用ifft2进行傅里叶逆变换),
(5)在同一图像窗口下显示原图像及D0=5,15,30,80,230进行滤波结果图像。
(Matlab中imshow(uint8(resultimage)))
clearall;
closeall;
clc;
f=imread('Fig4.11(a).jpg');
s=fftshift(fft2(f));
[m,n]=size(s);
a=round(m/2);b=round(n/2);
d1=5;d2=15;d3=30;d4=80;d5=230;
fori=1:
m
forj=1:
n
d=sqrt((i-a)^2+(j-b)^2);
h1=1/((1+(d/d1)^4));
s1(i,j)=h1*s(i,j);
h2=1/((1+(d/d2)^4));
s2(i,j)=h2*s(i,j);
h3=1/((1+(d/d3)^4));
s3(i,j)=h3*s(i,j);
h4=1/((1+(d/d4)^4));
s4(i,j)=h4*s(i,j);
h5=1/((1+(d/d5)^4));
s5(i,j)=h5*s(i,j);
end
end
subplot(2,3,1),imshow(f),title('原始图像');
subplot(2,3,2),imshow(uint8(real(ifft2(ifftshift(s1))))),title('d=5');
subplot(2,3,3),imshow(uint8(real(ifft2(ifftshift(s2))))),title('d=15');
subplot(2,3,4),imshow(uint8(real(ifft2(ifftshift(s3))))),title('d=30');
subplot(2,3,5),imshow(uint8(real(ifft2(ifftshift(s4))))),title('d=80');
subplot(2,3,6),imshow(uint8(real(ifft2(ifftshift(s5))))),title('d=230');
一个n阶的布特沃斯滤波器的传递函数为:
一个n阶的布特沃斯滤波器的传递函数为:
二阶巴特沃斯低通滤波器在不同截止频率下所对应的处理结果,与理想低通滤波不同,没有可见的振铃现象;图像模糊程度减少。
因为它的H(u,v)不是陡峭的截止特性,它的尾部包含有大量的高频成分。
3、高斯低通滤波器
(1)读取图像Fig4.11(a).jpg
(2)对图像逐点加权(-1)^(i+j)再进行傅里叶变换,使频域原点在图像区域的中心(或者先对图像进行傅里叶变换,在Matlab中利用FFTSHIFT函数使频域原点在图像区域的中心
(3)设计Gaussian低通滤波器,取D0=5,15,30,80,230进行滤波
(4)进行傅里叶逆变换,取实部,乘以(-1)^(i+j),(或者在Matlab中利用ifftshift,再利用ifft2进行傅里叶逆变换),
(5)在同一图像窗口下显示原图像及D0=5,15,30,80,230进行滤波结果图像。
(Matlab中imshow(uint8(resultimage)))
高斯低通滤波器
当截止频率相同时,和二阶Butterworth低通滤波器比较:
图像模糊程度降低,也没有振铃
GLPF不能达到有相同截止频率的二阶BLPF的平滑效果.在需要严格控制通过和滤除频率之间过渡的情况下,BLPF更为合适.额外控制滤波器剖面线的代价是可能产生振铃.
(a)原图像(b)-(f)用高斯低通滤波器滤波的结果,其截止频率半径分别为5,15,30,80和230.
三、高通滤波
1、理想高通滤波器
(1)读取图像Fig4.11(a).jpg
(2)对图像逐点加权(-1)^(i+j)再进行傅里叶变换,使频域原点在图像区域的中心(或者先对图像进行傅里叶变换,在Matlab中利用FFTSHIFT函数使频域原点在图像区域的中心
(3)设计理想高通滤波器,取D0=5,15,30,80,230进行滤波
(4)进行傅里叶逆变换,取实部,乘以(-1)^(i+j),(或者在Matlab中利用ifftshift,再利用ifft2进行傅里叶逆变换),
(5)在同一图像窗口下显示原图像及D0=5,15,30,80,230进行滤波结果图像。
(Matlab中imshow(uint8(resultimage)))
clearall;
closeall;
clc;
f=imread('Fig4.11(a).jpg');
s=fftshift(fft2(f));
[m,n]=size(s);
a=round(m/2);b=round(n/2);
d1=5;d2=15;d3=30;d4=80;d5=230;
fori=1:
m
forj=1:
n
d=sqrt((i-a)^2+(j-b)^2);
h1=exp(-1/2*(d^2/d1^2));
s1(i,j)=h1*s(i,j);
h2=exp(-1/2*(d^2/d2^2));
s2(i,j)=h2*s(i,j);
h3=exp(-1/2*(d^2/d3^2));
s3(i,j)=h3*s(i,j);
h4=exp(-1/2*(d^2/d4^2));
s4(i,j)=h4*s(i,j);
h5=exp(-1/2*(d^2/d5^2));
s5(i,j)=h5*s(i,j);
end
end
subplot(2,3,1),imshow(f),title('原始图像');
subplot(2,3,2),imshow(uint8(real(ifft2(ifftshift(s1))))),title('d=5');
subplot(2,3,3),imshow(uint8(real(ifft2(ifftshift(s2))))),title('d=15');
subplot(2,3,4),imshow(uint8(real(ifft2(ifftshift(s3))))),title('d=30');
subplot(2,3,5),imshow(uint8(real(ifft2(ifftshift(s4))))),title('d=80');
subplot(2,3,6),imshow(uint8(real(ifft2(ifftshift(s5))))),title('d=230');
二维理想高通滤波器(IHPF)定义如下:
这个滤波器与理想低通滤波器是相对得,它将以D0为半径的圆周内的所有频率成分置零,而毫不衰减地通过圆周外的任何频率.
2、Butterworth高通滤波
(1)读取图像Fig4.11(a).jpg
(2)对图像逐点加权(-1)^(i+j)再进行傅里叶变换,使频域原点在图像区域的中心(或者先对图像进行傅里叶变换,在Matlab中利用FFTSHIFT函数使频域原点在图像区域的中心
(3)设计二阶Butterworth高通滤波器,并取D0=5,15,30,80,230分别进行滤波
(4)进行傅里叶逆变换,取实部,乘以(-1)^(i+j),(或者在Matlab中利用ifftshift,再利用ifft2进行傅里叶逆变换),
(5)在同一图像窗口下显示原图像及D0=15,30,80进行滤波结果图像。
(Matlab中imshow(uint8(resultimage)))
clearall;
closeall;
clc;
f=imread('Fig4.11(a).jpg');
s=fftshift(fft2(f));
[m,n]=size(s);
a=round(m/2);b=round(n/2);
d1=5;d2=15;d3=30;d4=80;d5=230;
fori=1:
m
forj=1:
n
d=sqrt((i-a)^2+(j-b)^2);
h1=1/((1+(d1/d)^4));
s1(i,j)=h1*s(i,j);
h2=1/((1+(d2/d)^4));
s2(i,j)=h2*s(i,j);
h3=1/((1+(d3/d)^4));
s3(i,j)=h3*s(i,j);
h4=1/((1+(d4/d)^4));
s4(i,j)=h4*s(i,j);
h5=1/((1+(d5/d)^4));
s5(i,j)=h5*s(i,j);
end
end
subplot(2,3,1),imshow(f),title('原始图像');
subplot(2,3,2),imshow(uint8(real(ifft2(ifftshift(s1))))),title('d=5');
subplot(2,3,3),imshow(uint8(real(ifft2(ifftshift(s2))))),title('d=15');
subplot(2,3,4),imshow(uint8(real(ifft2(ifftshift(s3))))),title('d=30');
subplot(2,3,5),imshow(uint8(real(ifft2(ifftshift(s4))))),title('d=80');
subplot(2,3,6),imshow(uint8(real(ifft2(ifftshift(s5))))),title('d=230');
n阶且截止频率距原点的距离为D0的Butterworth型高通滤波器(BHPF)的传递函数如下:
3、设计高斯高通滤波器
(1)读取图像Fig4.11(a).jpg
(2)对图像逐点加权(-1)^(i+j)再进行傅里叶变换,使频域原点在图像区域的中心(或者先对图像进行傅里叶变换,在Matlab中利用FFTSHIFT函数使频域原点在图像区域的中心
(3)设计Gaussian高通滤波器,取D0=15,30,80进行滤波
(4)进行傅里叶逆变换,取实部,乘以(-1)^(i+j),(或者在Matlab中利用ifftshift,再利用ifft2进行傅里叶逆变换),
(5)在同一图像窗口下显示原图像及D0=15,30,80进行滤波结果图像。
(Matlab中imshow(uint8(resultimage)))
clearall;
closeall;
clc;
f=imread('Fig4.11(a).jpg');
s=fftshift(fft2(f));
[m,n]=size(s);
a=round(m/2);b=round(n/2);
d1=5;d2=15;d3=30;d4=80;d5=230;
fori=1:
m
forj=1:
n
d=sqrt((i-a)^2+(j-b)^2);
h1=1-exp(-1/2*(d^2/d1^2));
s1(i,j)=h1*s(i,j);
h2=1-exp(-1/2*(d^2/d2^2));
s2(i,j)=h2*s(i,j);
h3=1-exp(-1/2*(d^2/d3^2));
第五章 环境影响评价与安全预评价s3(i,j)=h3*s(i,j);
h4=1-exp(-1/2*(d^2/d4^2));
同建设项目安全评价相关但又有不同的还有:
《地质灾害防治管理办法》规定的地质灾害危险性评估,《地震安全性评价管理条例》中规定的地震安全性评价,《中华人民共和国职业病防治法》中规定的职业病危害预评价等。
s4(i,j)=h4*s(i,j);
h5=1-exp(-1/2*(d^2/d5^2));
s5(i,j)=h5*s(i,j);
2)规划实施可能对环境和人群健康产生的长远影响。
end
end
定量安全评价方法有:
危险度评价法,道化学火灾、爆炸指数评价法,泄漏、火灾、爆炸、中毒评价模型等。
subplot(2,3,1),imshow(f),title('原始图像');
subplot(2,3,2),imshow(uint8(real(ifft2(ifftshift(s1))))),title('d=5');
表四:
项目排污情况及环境措施简述。
subplot(2,3,3),imshow(uint8(real(ifft2(ifftshift(s2))))),title('d=15');
subplot(2,3,4),imshow(uint8(real(ifft2(ifftshift(s3))))),title('d=30');
(3)机会成本法subplot(2,3,5),imshow(uint8(real(ifft2(ifftshift(s4))))),title('d=80');
subplot(2,3,6),imshow(uint8(real(ifft2(ifftshift(s5))))),title('d=230');
(1)环境的使用价值。
环境的使用价值(UV)又称有用性价值,是指环境资源被生产者或消费者使用时,满足人们某种需要或偏好所表现出的价值,又分为直接使用价值、间接使用价值和选择价值。
2.间接市场评估法
(3)安全现状评价。
、
截止频率距原点的距离为D0的高斯高通滤波器(GHPF)的传递函数如下:
比较三幅图像:
IHPF同样具有振铃性质.
2阶巴特沃思型高通滤波器产生振铃很微弱
完全没有振铃,即使对微小物体和细条也很清晰.
仍以森林为例,营养循环、水域保护、减少空气污染、小气候调节等都属于间接使用价值的范畴。