ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:300.84KB ,
资源ID:5589246      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5589246.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字图像处理上机报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字图像处理上机报告.docx

1、数字图像处理上机报告数字图像处理报告 第二次上机报告 学院: 机电学院班级: 071113-20学号: 20111003341姓名: 曾志鹏2-1、计算图象的频谱函数设计图象f4(x,y)为3*30*30/256*256,水平排列;分析: 首先生成一个256*256的零矩阵,再按要求将其中某些部分赋值为一,即可得到图像。程序如下: A=zeros(256); %生成一个256*256的零矩阵for i=110:140 %设置行 for j=30:60 for p=100:130 for q=170:200 %设置列 A(i,j)=1; A(i,p)=1; A(i,q)=1; %将对应行列赋值为

2、1, end end endendsubplot(1,2,1);imshow(A); %显示得到图像title(原图像);A1=fft2(A); %对图像进行傅里叶变换A2=abs(A1);subplot(1,2,2);imshow(fftshift(log(A2); title(傅里叶变换后图像);运行结果如下:2-2、根据计算证明傅立叶变换的性质空域平移性:设f1(x,y)为30*30/256*256, 左移得到f2(x,y), 求F2(u,v); 上移得到f3(x,y), 求F3(u,v); 证明F1(u,v)、F2(u,v)和F3(u,v)的绝对值相等。分析:按照上题方法,设计图像并对

3、图像进行傅里叶变换,再将设计好的图像的行与列的值分别改变,即可得到平移后的图像。将得到的平移后的图像在进行傅里叶变换,即可得到相应的频谱。设置变量a,当三个图的频谱相等时,a值为1,否则为0,观察a的值,即可判断呢所得结果。程序如下:A=zeros(256);for i=100:130 for j=100:130 A(i,j)=1; endend %设置图像AA1=fft2(A);A2=abs(A1);subplot(2,3,1);imshow(A);title(原图像);subplot(2,3,4);imshow(fftshift(log(A2);title(傅里叶变换后图像);B=zero

4、s(256);for i=100:130 for j=50:80 B(i,j)=1; endend %设置图像BB1=fft2(B);B2=abs(B1);subplot(2,3,2);imshow(B);title(左移后图像);subplot(2,3,5);imshow(fftshift(log(B2);title(左移后傅里叶变换图像);C=zeros(256);for i=50:80 for j=100:130 C(i,j)=1; endend %设置图像CC1=fft2(C);C2=abs(C1);subplot(2,3,3);imshow(C);title(右移后图像);subpl

5、ot(2,3,6);imshow(fftshift(log(C2);title(右移后傅里叶变换图像);m n=size(A2); for i=1:m for j=1:n if A2(i,j)=B2(i,j)&A2(i,j)=C2(i,j) %判断频率绝对值是否相等 a=1; else a=0; end end end 结果如下:由上图得知a值为1,即表明平移后的图像的频谱的绝对值相等,与题目意思符合。2-3、图象变换比较 自行设计f(x,y),(1)调用Matlab函数直接调用实现其离散傅立叶变换、离散余弦变换;(2)自行编程对f(x,y)实施Walsh变换和Hadamard变换,比较四种变

6、换所得到的频谱。分析:设计图像,将图像进行傅里叶变换和离散余弦变换。将得到的结果显示出来,由沃尔什变换和哈达玛变换,编写程序将算法正确的表达出来。程序如下:N=16;n=log2(N);f=zeros(16);for i=4:8 for j=4:8 f(i,j)=1; endendsubplot(2,3,1);imshow(f); title(原图像);f=double(f);F2=fft2(f); %将图像f进行傅里叶变换F2=fftshift(F2);%将零频率点移到频谱图中心F2=log(abs(F2);%采用对数,更好的表示高频 subplot(2,3,2);imshow(F2); t

7、itle(傅里叶变换频谱); yuxian=dct2(f); %将图像f进行离散余弦变换yuxian=log(abs(yuxian); subplot(2,3,3);imshow(yuxian); title(离散余弦变换频谱); for u=0:N-1 for v=0:N-1 A=0; for x=0:N-1 for y=0:N-1 zs=0; for i=0:n-1 zs=zs+bitget(x, i+1)*bitget(u,n-i)+bitget(y, i+1)*bitget(v, n-i); end %由于bitget函数没有第0位,因此都应该加1 zs=(-1)zs; A=f(x+1

8、,y+1)*zs+A; end end walsh(u+1,v+1)=A/N; endend %算法核心部分 subplot(2,3,4);imshow(walsh); title(Walsh变换频谱); for u=0:N-1 for v=0:N-1 A=0; for x=0:N-1 for y=0:N-1 zs=0; for i=0:n-1 zs=zs+bitget(x, i+1)*bitget(u,i+1)+bitget(y,i+1)*bitget(v, i+1); end zs=(-1)zs; A=f(x+1,y+1)*zs+A; end end Hadamard(u+1,v+1)=A

9、/N; endend %算法核心部分 subplot(2,3,5);imshow(Hadamard); title( Hadamard变换频谱 );结果如下:2-4、图象的频域滤波根据频率采样法设计一个带阻滤波器,对两图象(f1(x,y)为90*30/256*256的图象;f2(x,y) 30*90/256*256图象)进行带阻滤波,观察分析滤波前后空域图象和频谱分布的变化。分析:按要求设计图像,将图像进行傅里叶变换,再将得到的频率进过带阻滤波器滤波,将滤波后的结果显示出来,观察并对比滤波前后图像的变化。程序如下:f1=zeros(256);f1(30:120,110:140)=1; %90*

10、30的图像g1=fft2(f1);g1=fftshift(g1);% 零频率部分移到数组中间subplot(2,2,1),imshow(f1); title(f1原图像);subplot(2,2,2),imshow(log(abs(g1),-1 10);title(傅里叶变换);M,N=size(g1);D0=50; %截止频率D1=90;m=fix(M/2);n=fix(N/2); %中心化频谱图像中心for i=1:M for j=1:N D=sqrt(i-m)2+(j-n)2); %频谱平面原点到(u,v)点的距离 if(D=D0) h=1; %带阻滤波核心部分 else if(D=D0

11、) h=0; else h=1; end end Q(i,j)=h*g1(i,j); endendsubplot(2,2,3),imshow(Q);title(理想带阻滤波器);Q=ifftshift(Q);J1=ifft2(Q);J2=uint8(real(J1);subplot(2,2,4),imshow(J2);title(复原图);结果如下:对图像f2同理可得程序如下:f1=zeros(256);f1(110:140,30:120)=1;%30*90的图像g1=fft2(f1);g1=fftshift(g1);% 零频率部分移到数组中间subplot(2,2,1),imshow(f1)

12、; title( f1原图像);subplot(2,2,2),imshow(log(abs(g1),-1 10);title(傅里叶变换);M,N=size(g1);D0=50; %截止频率D1=90;m=fix(M/2);n=fix(N/2); %中心化频谱图像中心for i=1:M for j=1:N D=sqrt(i-m)2+(j-n)2); %频谱平面原点到(u,v)点的距离 if(D=D0) h=1; %带阻滤波核心部分 else if(D=D0) h=0; else h=1; end end Q(i,j)=h*g1(i,j); endendsubplot(2,2,3),imshow

13、(Q);title(理想带阻滤波器);Q=ifftshift(Q);J1=ifft2(Q);J2=uint8(real(J1);subplot(2,2,4),imshow(J2);title(复原图);结果如下:1-5几何变换题目:图象旋转的计算流程(1)图象尺寸不变(2)图象尺寸变化 1. 图象尺寸不变 程序如下:A=imread(p08.tif);A1= imrotate(A,45,crop);A2= imrotate(A,90,crop);subplot(1,3,1);imshow(A);title(原图像);subplot(1,3,2);imshow(A1);title(逆时针旋转45

14、度);subplot(1,3,3);imshow(A2);title(逆时针旋转90度); 分析:imrotate函数实现图像逆时针旋转,45,90为其旋转的度数。参数corp使旋转时图像底板大小保持不变,图像大小也保持不变。所以旋转后,图像的边角部分会被切掉。如下图所示:结果如下: 由上图可知,图像A,A1,A2大小一样,即旋转后图像大小未变 2. 图象尺寸变化 程序如下:A=imread(p08.tif);A1= imrotate(A,45);A2= imrotate(A,135);subplot(1,3,1);imshow(A);title(原图像);subplot(1,3,2);imshow(A1);title(旋转45度底板变大);subplot(1,3,3);imshow(A2);title(旋转135度底板变大);分析:当imrotate函数后面不写参数corp,那么旋转后的图像大小不变,而图像的底板会变大,如下图所示。结果如下:由上图可知,图像A,与A1,A2大小不一样,即旋转后图像大小该变。总结:与第一次相比,这次感觉比之前好很多,虽然比较棘手,但至少对题目方向感,知道如何去编写程序,对软件的使用操作等更加熟悉顺手。同时也能自己编程而尽量少的调用软件提供的函数。同时,通过编程,我们对课本知识的了解也更加深刻,学的也更多。

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

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