《数字图像处理》课程设计报告

《数字图像处理》课程设计报告
《数字图像处理》课程设计报告

1.课程设计目的

1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方

法。

2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。

2.课程设计内容及实现

、二维快速傅立叶变换:

本项目的重点是:

这个项目的目的是开发一个2-D FFT程序“包”,将用于在其他几个项目。您的实现必须有能力:

(a)…

(b)乘以(-1),x + y的中心变换输入图像进行滤波。

(b) 一个真正的函数相乘所得到的(复杂的)的阵列(在这个意义上的实系数乘以变

换的实部和虚部)。回想一下,对相应的元件上完成两幅图像的乘法。

(c) 计算傅立叶逆变换。

(d) 结果乘以(-1)x + y的实部。

(e) 计算频谱。

基本上,这个项目实现了图。。如果您正在使用MATLAB,那么您的傅立叶变换程序将不会受到限制,其大小是2的整数次幂的图像。如果要实现自己的计划,那么您所使用的FFT 例程可能被限制到2的整数次幂。在这种情况下,你可能需要放大或缩小图像到适当的大小,使用你的程序开发项目02-04

逼近:为了简化这个和以下的工程(除项目04-05),您可以忽略图像填充(4.6.3节)。虽然你的结果不会完全正确,将获得显着的简化,不仅在图像的大小,而且在需要裁剪的最终结果。由这种近似的原则将不会受到影响

结果如下:

~

主要代码

f=imread('(a).jpg');

H=imread('(a).jpg');

subplot(3,2,1);

imshow(f);

title('(a)原图像');

[M1,N1]=size(f);

f=im2double(f);

[M2,N2]=size(H);

H=im2double(H); %把灰度图像I1的数据类型转换成转换成双精度浮点类型

for x=1:M1

for y=1:N1

f(x,y)=(-1)^(x+y)*f(x,y); %用(-1)^(x+y)乘以输入图像,来实现中心化变换

end

end

F=fft2(f); %使用函数fft2可计算傅立叶变换

subplot(3,2,3);

imshow(F);

title('(b)傅立叶变换的图像');

if(M2==1)&&(N2==1)

G=F(x,y)*H(x,y);

elseif((M1==M2)&&(N1==N2))

for x=1:M1

for y=1:N1

G(x,y)=F(x,y)*H(x,y);

end

end

else

error('输入图像有误','ERROR');

end %通过两个图像的乘法程序,实现对相应元素的相乘

g=ifft2(G);

~

subplot(3,2,4);

imshow(g);

title('(c)傅立叶逆变换的图像');

for x=1:M1

for y=1:N1

g(x,y)=(-1)^(x+y)*g(x,y);

end

!

end

g=real(g);

S=log(1+abs(F)); %计算傅立叶幅度谱并做对数变换

subplot(3,2,5);

plot(S); %二维图像显示幅度谱

title('(d)二维图像显示幅度谱');

Q=angle(F); %计算傅立叶变换相位谱

subplot(3,2,6);

plot(Q);

title('(e)二维图像显示相位谱'); %二维图像显示相位谱

结果截图

图1 傅里叶变换及频谱图

结果分析:

图1中(a)是原始灰度图像,对原图进行傅里叶变换,用(-1)^(x+y)乘以输入图像,来实现中心化变换得到(b),(c)为傅里叶变换的逆变换得到的图像。对应(d)、(e)分别

为计算的幅度谱和相位谱。

-

、傅立叶频谱和平均值

#

本项目的重点是:

(a)下载图。(a)和计算(居中)傅立叶频谱。

(b)显示频谱。

(c)使用(a)中计算图像的平均值的结果

结果如下:

主要代码

%abs-取绝对值和复数幅度

%fft2-求二维离散傅立叶变换

]

I = imread('(a).jpg');

I1 = fft2(I);

X = fftshift(abs(I1)); %直流分量移到频谱中心[m,n] = size(X);

Average_value = X(m/2+1,n/2+1)/(m*n) %平均值计算

I1 = abs(I1)*256/max(max(abs(I1))); %傅立叶谱图像

{

X = X*256/max(max(X)); %中心化的傅立叶谱图像' subplot(1,3,1);

imshow(I);

title('(a)原图像');

subplot(1,3,2);

imshow(I1);

title('(b)傅立叶谱图像');

subplot(1,3,3);

~

imshow(X);

title('(c)中心化的傅立叶谱图像');

结果截图

图 2 计算图像的频谱图并中心化

图3 平均值

结果分析:

图2中(a)为原始图像,先对图像进行傅里叶变换得到(b),然后移至频谱中心得到(c),图3为图像的平均值的结果,此结果是在matlab窗口中实现的。

、低通滤波

本项目的重点是:

(a)实现高斯低通滤波器式。()。你必须能够指定大小,M×N的,由此产生的

2D功能。此外,你必须能够指定二维高斯函数的中心位置

(b)下载图。(一)[这个形象是同图。(a)〕和低通滤波器中取得图。(三)

@

结果如下:

主要代码

I=imread('(a).jpg')

subplot(1,2,1);

imshow(I);

title('(a)原始图像');

s=fftshift(fft2(I));

[M,N]=size(s); %分别返回s的行数到M中,列数到N中

~

n=2; %对n赋初值

%高斯低通滤波,这里以标准差d0=30来分析图像

d0=30; %初始化d0

n1=floor(M/2); %对M/2进行取整

n2=floor(N/2); %对N/2进行取整

for i=1:M

for j=1:N

]

d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数

s(i,j)=h*s(i,j); %GLPF滤波后的频域表示

end

end

s=ifftshift(s); %对s进行反FFT移动

%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数

s=uint8(real(ifft2(s)));

,

%创建图形图像对象

subplot(1,2,2);

imshow(s); %显示高斯低通滤波处理后的图像

title('(b)高斯低通滤波(d0=30)');

结果截图

图 4 高斯低通实现的图像

结果分析:

(

图4中(a)为原始图像,将原始图像经过高斯低通滤波,得到(b),这里以标准差d0=15来分析图像。

、使用一个低通图像高通滤波

本项目的重点是:

(a)从原来的04-03项目减去你的形象得到锐化后的图像,如式。()。你会注意

到,生成的图像并不像高斯高通图。。解释为什么会是这样

}

(b) 调整的方差高斯低通滤波器,直到图像相减得到的结果看起来类似于图。(三)。解释你的结果

结果如下:

主要代码

I=imread('(a).jpg')

s=fftshift(fft2(I));

[M,N]=size(s); %分别返回s的行数到M中,列数到N中

^

n=2; %对n赋初值

%高斯低通滤波,这里以标准差d0=30来分析图像

d0=30; %初始化d0

n1=floor(M/2); %对M/2进行取整

n2=floor(N/2); %对N/2进行取整

for i=1:M

for j=1:N

<

d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数

s(i,j)=h*s(i,j); %GLPF滤波后的频域表示

end

end

s=ifftshift(s); %对s进行反FFT移动

%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数

s=uint8(real(ifft2(s)));

}

%创建图形图像对象

subplot(1,2,1);

imshow(s); %显示高斯低通滤波处理后的图像

title('(a)高斯低通滤波实现的图片');

s=fftshift(fft2(I));

[M,N]=size(s); %分别返回s的行数到M中,列数到N中

\

n=2; %对n赋初值

%高斯高通滤波,这里以标准差d0=30来分析图像

d0=30; %初始化d0

n1=floor(M/2); %对M/2进行取整

n2=floor(N/2); %对N/2进行取整

for i=1:M

for j=1:N

~

d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=1-1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数

s(i,j)=h*s(i,j); %GLPF滤波后的频域表示

end

end

s=ifftshift(s); %对s进行反FFT移动

%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数

s=uint8(real(ifft2(s)));

%创建图形图像对象

subplot(1,2,2);

imshow(s); %显示高斯高通滤波处理后的图像

title('(b)高斯高通滤波实现的图片');

结果截图

图 5 高通实现的图像

结果分析:

图5中(a)为经过高斯低通处理的图像,将此图像经过高斯高通处理得到(b)。

、在频域的相关性

本项目的重点是:

下载图。(a)及(b)和重复例获得图。(E)。给(的x,y)的二维相关函数中的最大值的位置的坐标。有没有必要在图中绘制的档案中。(F)

(

结果如下:

主要代码

clear;clc;

fa=imread('(a).jpg');

fb=imread('(b).jpg');

subplot(2,2,1);

imshow(fa);

title('(a)原始图像');

)

subplot(2,2,2);

imshow(fb);

title('(b)模板');

[A B]=size(fa);

[C D]=size(fb);

expfa=zeros(A+C-1,B+D-1);

expfb=zeros(A+C-1,B+D-1);

expfa(1:A,1:B)=fa;

expfb(1:C,1:D)=fb;

subplot(2,2,3);

imshow(expfa);

title('(c)图像延拓');

subplot(2,2,4);

imshow(expfb);

title('(d)图像延拓');

H=real(ifft2(fft2(expfa).*fft2(rot90(expfb,2),293,297)));%求相关性

figure;

imshow(H,[])

title('(e)两图像延拓之后的相关函数');

max(H(:)) %求取最大的相关值——因为是利用模板做的相关运算,值最大的地方最相关

thresh=;%设置一个略低于最大相关值的阈值

figure;

imshow(H > thresh)%显示定位.

title('(f)图像定位');

结果截图

图 6 两原始图像的延拓

图7 延拓之后图像

图8 图像定位

图 9 结果

结果分析:

图6中(a)是图像,(b)是模板。延拓后的图像如图6中的(c)、(d)所示。两延拓图像的空间域相关以图像形式显示与图7中的(e),图8中的(f)显示的是图像的定位图。

3.课程设计总结与体会

本次实验,通过使用MATLAB中的图像处理工具箱中的函数,对每个图像处理函数的功能都有了深入了认识。了解了日常看到的图片为什么会有各种模糊问题,也知道了该如何解决一些基本的图像问题。希望下次能知道更多使用MATLAB来解决新的问题。

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.360docs.net/doc/3f14171322.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

扫雷的课程设计报告

西安文理学院信息工程学院课程设计报告 设计名称:数据结构课程设计 设计题目:实现一个N*M的扫雷游戏 学生学号:1402130407 专业班级:软件13级四班 学生姓名:樊秀琳 学生成绩: 指导教师(职称):谢巧玲(讲师) 课题工作时间:2015.6.22 至2015.7.3

说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个 学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设 计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。

信息工程学院课程设计任务书 指导教师:院长: 日期:2015年6月22日

信息工程学院课程设计进度安排表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 指导教师签名: 2014年6月22日

成绩评定表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班

摘要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse

网页制作课程设计报告

网页制作课程设计报告 学院: 专业班级: 姓名: 学号: 成绩: 阅卷教师:

目录 1.设计目的 (1) 2.设计思想 (1) 2.1网站整体结构规划思想 (1) 2.2 主页设计思想 (1) 2.3子页的设计思想 (1) 3网页详细设计分析 (1) 4结论 (2)

1.设计目的 阐述该个人网站的设计意图和创意,简单介绍自己的个人网站。 2.设计思想 阐述网站的整体设计思想,包括: 2.1网站整体结构规划思想 要求阐述网站整体结构的选择、设计的思想,绘制网站结构草图。 2.2 主页设计思想 要求对主页的布局思路进行阐述和分析。 2.3子页的设计思想 要求对子页的设计以及网页对象的选取思路进行阐述和分析。 3网页详细设计分析 要求选取一张网页,对网页的设计实现过程进行阐述和分析,详细说明制作该网页的步骤,所使用的网页对象以及该网页对象的操作方法。

4结论 对整个设计报告做归纳性总结,并分析设计过程中的困难及如何解决的,最后提出展望。 一、设计目的 本课程的设计目的是通过实践使同学们经历Dreamweaver cs3开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。结合具体的开发案例,理解并初步掌握运用Dreamweaver cs3可视化开发工具进行网页开发的方法;了解网页设计制作过程。通过设计达到掌握网页设计、制作的技巧。了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,可以按要求,利用合适图文素材设计制作符合要求的网页设计作品。熟练掌握Photoshop cs3、Dreamweaver cs3等软件的的操作和应用。增强动手实践能力,进一步加强自身综合素

WEB个人主页课程设计

Web应用开发技术 实验报告 专业:计算机科学与技术 班级: 学号: 姓名:

一、设计题目 个人网站 二、目的 1、本次设计是学生在学完ASP动态网站开发课程后的一次实践性很强的课程设计,是对ASP进行动态网站开发所学知识的综合运用。 2、掌握使用ASP技术进行网站开发设计。 3、通过本次实习,使学生加深所学知识内容的理解,并能积极地调动学生的学习兴趣,结合实际应用操作环境,真正做到理论与实际相结合。 三、功能需求描述 此网站可以对主人留言,来发表自己的心情,也可以把自己的联系方式写入其中,达到和睦相处、心灵的驿站的目的等。 四、总体设计

五、详细设计 (一)、我的主页 此页面为网站的主页,通过发布新心情,点击通讯录可以查看通讯录好友信息,点击留言板可以查看好友留言。 主要代码: 个人空间