整理实验三 频域增强.docx

上传人:b****5 文档编号:28166267 上传时间:2023-07-08 格式:DOCX 页数:20 大小:685.87KB
下载 相关 举报
整理实验三 频域增强.docx_第1页
第1页 / 共20页
整理实验三 频域增强.docx_第2页
第2页 / 共20页
整理实验三 频域增强.docx_第3页
第3页 / 共20页
整理实验三 频域增强.docx_第4页
第4页 / 共20页
整理实验三 频域增强.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

整理实验三 频域增强.docx

《整理实验三 频域增强.docx》由会员分享,可在线阅读,更多相关《整理实验三 频域增强.docx(20页珍藏版)》请在冰豆网上搜索。

整理实验三 频域增强.docx

整理实验三频域增强

实验三傅里叶变换及频域增强

一.实验内容:

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)))

高斯低通滤波器

 

三、高通滤波

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阶巴特沃思型高通滤波器产生振铃很微弱

完全没有振铃,即使对微小物体和细条也很清晰.

仍以森林为例,营养循环、水域保护、减少空气污染、小气候调节等都属于间接使用价值的范畴。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1