matlab课程设计.docx
- 文档编号:7433240
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:11
- 大小:968.56KB
matlab课程设计.docx
《matlab课程设计.docx》由会员分享,可在线阅读,更多相关《matlab课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
matlab课程设计
《Matlab课程设计》
——图像与动画
班级:
姓名:
学号:
时间:
地点:
指导教师:
自动化教研室
一.课程设计目的与要求
二.课程设计课题的分析
三.课程设计的内容与安排
四.课程设计的步骤
五.课程设计的结果
六.参考文献
七.附录
一.课程设计目的与要求
1.课程设计目的:
(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计
(2)通过课程设计提高应用能力,为专业课的学习打下基础
(3)培养查阅资料的习惯,训练和提高独立思考和解决问题的能力
(4)通过命令显示图像,完成简单动画的制作,结合程序设计培养知识综合运用能力和技巧。
2.课程设计要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:
(1)能够正确理解课设的题目和意义,全面思考问题
(2)运用科学合理的方法,认真按时完成
二.课程设计课题的分析
1.图像:
通过…等函数的调用实现对图像属性的改变。
2.动画
对于动画的设计我有几个思路。
(1)建立一个矩阵,把图片读出来放到矩阵中,再通过moviein函数播放,但是实验了几次也没有成功。
(2)画一个三维图,通过改变属性实现三维图的转动来达到动画效果。
(3)先装入一张背景图,再通过编程使图片产生动画效果。
通过尝试我选了第三种方法。
三.课设的内容与安排
内容:
1.利用matlab调用磁盘目录下的图片文件;
2.制作实时动画;
3.制作演示系统,通过点击不同的按键显示不同的图形。
时间安排参考如下教学时间安排
教学安排;
周一布置任务,查阅资料
周二设计
周三设计
周四仿真、调试
周五验收、总结报告
四.课程设计的步骤
1.图像
采用imread函数
g0=imread('C:
\Users\toshiba\Desktop\matlab\');%读取文件名为q的图像。
Imadd:
增加亮度,
imnoise:
添加噪声,
imrotate:
旋转
grayslice:
索引色
在一个figure框显示多幅效果图用subplot函数
源程序见附录1。
2.动画制作
动画的源程序:
A=imread('C:
\Users\toshiba\Desktop\matlab\');%背景图像
h=figure;
imshow(A);%显示
hPush=findall(0,'Type','uiPushTool');
hToggle=findall(0,'Type','uiToggleTool');
htogglesplit=findall(0,'Type','uitogglesplittool');
set([hPush;hToggle;htogglesplit],'Visible','off');%隐藏工具栏
axes
axis([0101]);%设置坐标范围
axisoff;
set(gcf,'color','k');%设置背景颜色为黑色
N=20;
handles=zeros(1,N);
x=rand(2,N);
fontsize=floor(rand(1,N)*17+32);%设置字号
new_handles_N=0;
fori=1:
N
handles(i)=text(x(1,i),x(2,i),'*','fontsize',fontsize(i),'color','w');%handles´存储每一个雪花的句柄
end
while1
if~ishandle(h)
return
end
fori=1:
N
temp=get(handles(i),'position');
step=get(handles(i),'fontsize')/48*;%²不同的雪花速度不同
iftemp
(2)<0判断是否溢出
new_handles_N=new_handles_N+1;
new_handles(new_handles_N)=copyobj(handles(i),gca);
ifnew_handles_N==500
delete(new_handles);
new_handles_N=0;
end
temp
(1)=rand
(1);
temp
(2)=1;
else
temp
(1)=temp
(1)+rand
(1)*temp
(2)=temp
(2)-step;%速度
end
set(handles(i),'position',temp,'rotation',get(handles(i),'rotation')+5);
end
pause(.2)
end
的设计
(1)新建一个gui,添加pushbutton组件,添加axes组件。
(2)点击运行,在弹出的editor窗口编程
五.课设结果
1.图像
二.动画
圣诞
跳动的心
六.课设的心得体会
为期一周的课程设计就要结束了;通过这些天的学习,我深深地知道了学任何知识都要虚心,都要扎实的学,在这一个星期了,我学到了很多书本上没有学到的东西,例如对图像的各种分析处理;对动画的初步制作,虽然有的程序是参考别人弄好的,可通过读程序,改程序,最后做出了自己心满意足的效果,我觉得我还是赚到了。
在课设开始,做图片的时候,由于书上有好多实例,感觉很简单,便觉得这课设没什么压力啊。
可是再开始做动画后,我眉头皱起来了。
我初期的构想是通过读图来实现动画,可是试了N多程序还是不行,苦恼了一天多,查了好多资料,还是不行,真的觉得自己太笨了。
没办法,必须得改变思路了,不然就无法再规定时间内完成课设了。
在matlab论坛上看了很多人的技术帖,视野开拓了许多,最后也如愿的完成了课设。
七.参考文献
[1]崔新忠.MATLAB与仿真系统课程设计指导书.自编教材,2007年
[2]作者:
赖志国.Matlab图像处理与应用.2007
[3]刘卫国.MATLAB程序设计与应用(第二版).北京:
高等教育出版社,2006年
[4]张强,王正林.精通MATLAB图像处理.2009
附录1
图像处理的源程序:
clearall
figure('menubar','none');
g0=imread('C:
\Users\toshiba\Desktop\matlab\');
subplot(331);imshow(g0);title('原图');
g2=imadd(g0,100);
subplot(332);imshow(g2);title('亮度增加100');
g1=imnoise(g0,'salt&pepper',;
g1=im2double(g1);
subplot(333);imshow(g1);title('加入椒盐噪声');
g4=imrotate(g0,45,'bilinear');
subplot(334);imshow(g4);title('左旋45');
g5=grayslice(g0,64);
subplot(335);imshow(g5,hot(64));title('索引色');
g0=g0(:
:
2);
subplot(336);imshow(g0,[50,150]);title('灰度级[50,150]');
g1=imnoise(g0,'salt&pepper',;
g1=im2double(g1);
h6=fspecial('average');
g7=filter2(h6,g1,'same');
subplot(337);imshow(g7);title('进行均值滤波');
subplot(338);imhist(g0);title('图像直方图');
g6=im2bw(g0);subplot(339);imshow(g6);title('二值')
附录2:
跳动的心源程序:
closeall
figure('menubar','none');
x=linspace(-2,2,100);
[X,Y,Z]=meshgrid(x,x,x);
I1=(X.^2+9/4*Y.^2+Z.^2-1).^3-X.^2.*Z.^3-9/80*Y.^2.*Z.^3;
p=patch(isosurface(X,Y,Z,I1,0));
set(p,'FaceColor','red','EdgeColor','r');
set(gcf,'color','y');
view(3);
axisequal;
axisoff;
light('Posi',[0-23]);
%在(0,-2,3)点建立一个光源´
lightingphong
set(gca,'nextplot','replacechildren');
%记录
XX=get(p,'XData');
YY=get(p,'YData');
ZZ=get(p,'ZData');
forj=1:
20
bili=sin(pi*j/20);
set(p,'XData',bili*XX,'YData',bili*YY,'ZData',bili*ZZ)
F(j)=getframe;
end
movie(F,10)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 课程设计