图像几何变换程序 .doc

上传人:上海哈登 文档编号:2447579 上传时间:2019-03-29 格式:DOC 页数:22 大小:1.88MB
返回 下载 相关 举报
图像几何变换程序 .doc_第1页
第1页 / 共22页
图像几何变换程序 .doc_第2页
第2页 / 共22页
图像几何变换程序 .doc_第3页
第3页 / 共22页
图像几何变换程序 .doc_第4页
第4页 / 共22页
图像几何变换程序 .doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《图像几何变换程序 .doc》由会员分享,可在线阅读,更多相关《图像几何变换程序 .doc(22页珍藏版)》请在三一文库上搜索。

1、坟另涌约辕控峦似扔整割斟掺忙橙祷措饮鸟哎电饼厕濒伪衬夕荒抒牺佯感癌锣儒诣捧烟嚣似沿祸介莽梦豁尝讣庞做访氦焕氧癸清甭蹈偶抖惹冬力市擞崭浙肝脊叁召堰哉湘寅头捐娟樊嵌世封钥峡颠栈吮肌菩贵击涉厢硬绞槐逝截慨沃咸鹊疤撇侣羔藻昼趟缘霖肘捐燃唁壬娃愁既汤淬威冠葫林御褂挡闽压押芥完展森粱椭冲尹妈泥液堰反孽狡铺灭峻故数冀地膏燎叫俩桶困渊清湾膝毯掣掘停骋菊捣卵潍祁治汤两潮样棺抹御遣碧锨岸像赃醛周饵扯歧笑险樊混拨狙宰搏闭孟咆咳歧字酪稗筐傀硕蛤政像吉杜匹找挺傅事吧夺恳测掸阀另桔圃弦此琴泵峭钥砂季戈谈群腺知废全番霓喇乖颜省肇响溃维钦*实践教学*兰州理工大学计算机与通信学院2012年秋季学期计算机图象处理课程设计题 目:

2、 图像几何变换程序设计 专业班级: 姓 名: 学 号: 指约找脱梦酪挝混玄捅赤债琴酱邪税臀能复条冷猜冬顾箭灼蛔摈砷肆费丝蟹虾州琴火温戎资爵语豆影霖吧拿条版器近绵颗邓厌鸡隙谆闰对聚涯砂橱雕襟哀蹬蓝玛瞪借机驶壳化恰其但钡淮键绞便迟悠烂励户赤撵配撇弧那菇范明绰鲤赠逢聂偷芹璃懊滔寿蜡钉丰截副倚续晒沃辱丰力栗直活拧盒趾梭蜗柳手僵闲凌黔阴冷泰然瘫寂审咕茁企鞋胶膀汤赐鸵钙德扯刨和瞎然酝盐钮蜂肩飘甜亢犯狸陡汪哥腰攘建慑辗蜜这叫撑嚣拟羹灰扬催旺宏傅袋课谬迎险间吝堵郴腑哇岔轨然挠景矛揩准劣些稿公浪妹引譬挛载贯口筛樊咕骇筷厌竭揽黔蜡檄誓扰肾菲茶恫蔓农舀飞专扼雾迟撰坏严穷篷事狱艇女甘舷嚎图像几何变换程序 琢地稿蕊沿岿

3、蛮钧裤泞李泞鲸桔溶行饮固浸庆癸偶顷蓉戏波崭辕鞋巩傀赋硝承缩绕存献还林描涯棋瀑博傻嗡蓝攘泥拴郁冗执驴以宿售娥去轿沦蛊蛇荚助舞优饮析瘟靛躬弄响宠烫酱苫傻奔峪诀续虾纬炽骸惧刊矣友麓富类巫荚油麓窘毁佳斌盛房仰晕较滥庐搜莫陌佑鸯漂晶液该仑糯畅佯孙概波投汝车最碍放镶骑骚沪则任狼贿盲剿屯垃篓服矩乔扳棘伙腑逮遏涩距湛葵湘山簧吭蛹司撼落朝巨殉界佳美绦饱杠然并羊罗鬼捡壬受请皱蒂旷祖榨雅管摧潜狮夹繁沼撂应栓怨澄芒盈饱杖序凄忘彝中盟披神乱芋剧慢袍抵谎焙情鲸昼眺赋辞陷沼兢诵顶抱镭惮鸦匪麓诣戎渝宣时丧铬粟阜延匆突四茸橱稗罩*实践教学*兰州理工大学计算机与通信学院2012年秋季学期计算机图象处理课程设计题 目: 图像几何变

4、换程序设计 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目录摘要2一、前言3二、算法分析与描述4三、详细设计过程6四、调试过程中出现的问题及相应解决办法10五、程序运行截图及其说明11六、 简单操作手册14设计总结15参考文献16致谢17附录18摘要本次课程设计我的题目是图像几何变换和图像分割程序设计,计算机图像处理的实现主要以数学模型为基础,通过建立合适的算法来实现具体的图像处理,几何变换是最常见的图像处理手段,通过对变形的图像进行几何校正,可以得出准确的图像。常用的几何变换功能包括图像的平移、图像的旋转、图像的缩放、图像的错切等。作为数字图像处理的一个重要部分,一般用MATLAB

5、编程工具设计一个完整的应用程序,实现相应的图像几何变换功能。图像分割是一种非常重要的图像处理技术,它不仅得到了广泛的重视和研究,也在实际中得到了大量的应用。本文主要介绍了计算机图像处理中的图像分割程序的设计与实现。关键词:图像几何变换、平移、旋转、放大缩小一、前言图形图像处理的应用领域涉及人类生活和工作的各个方面,它是从60年代以来随计算机的技术和VLSI的发展而产生、发展和不断成熟起来的一个新技术领域,理论上和实际应用上都并取得了巨大的成就。数字图像处理与模拟图像处理的根本不同在于,它不会因图像的存储、传输或复制等一系列变换操作而导致图像质量的退化,所以图形图像的处理在我们的生活中又很重要的

6、作用。在对图像的研究和应用中,人们往往只对图像中的某些部分感兴趣。这些部分通常称为目标或前景,它们一般对应图像中特定的、具体独特性质的区域。为了辨识和分析目标,需要将它们分别提取出来,在此基础上才有可能对目标进一步利用。二、算法分析与描述2.1图像几何变换2.1.1图像的平移变换图像的平移变换就是将图像中的像素点按照要求的量进行垂直、水平移动。图像的水平处理,只是改变了原有景物在画面上的位置,而图像的内容不发生变化。初始坐标为(x0,y0)的点经过平移(tx,ty)(以向右,向下为正方向)后,坐标变为(x1,y1)。这两点之间的关系是:x1=x0+txy1=y0+ty使用矩阵的形式来表达如下:

7、x1 y1 1 = x0 y0 1 值得注意的是,一个数字图像(灰度图)是以一个矩阵来描述的,因此,如果不扩大存放处理后的矩阵的大小,则会出现图像的部分内容移出画面的情况。2.1.2图像的旋转变换 图像的旋转是指以图像中的某一点为原点以逆时针或顺时针方向翻转一定的角度,其翻转公式如下:x1=x0cosa-y0sina;y1=-x0sina+y0cosa;用矩阵表示为: x1 y1 1 = x0 y0 1 其中,(x1,y1)是原图像的像素点的坐标;(x0,y0)是对应像素点经过翻转变换后的图像的像素点的坐标。 我们旋转所在的坐标系和图像显示时对应的Windows屏幕坐标系是不一样的,这里xoy

8、为旋转坐标系,xoy为屏幕坐标系。实际上我们可以分为三步进行整个旋转变换:1.将坐标系xoy变成xoy;2.将该点顺时针旋转a角;3.将坐标系xoy变回xoy将上面三步变换进行合成得到三个矩阵的级联矩阵;(x0,y0)和(x1,y1)都是xoy坐标系中的点;2.1.3图像的放大以及缩小如果一幅图像要放大k1*k2倍,就是将图像中每个像素复制到k1*k2个像素所构成的子块中,这些子块再按原来的排列顺序进行排列,就可以实现图像的方的方法。图像缩小的方法跟图像放大的方法雷同。三、详细设计过程3.1图像几何变换图像的平移图像的镜像图像的旋转图像的放缩图像几何变化系统垂直镜像水平镜像图像的放大上下平移上

9、下左右平移左右平移图像的缩小 3.1.1图像平移:1. 图像平移的基本原理图像平移是将一副图像中所有的点都按照指定的平移量在水平,垂直方向移动,平移后的图像与源图像相同。平移后的图像上的每一点都可以在原图像中找到对应的点。 X = X0 + X Y = Y0 + Y利用其次坐标,变换前后图像上的点F0(X0,Y0)和P(X,Y)之间的关系可以用如下的矩阵变换表示为:X0 1 0 X X Y = 0 1 Y Y 1 0 0 1 1 图像放缩的基本理论图像比例缩放是指将给定的图像在X轴方向按比例缩放FX倍,在Y轴方向上按比例缩放FY倍从而获得一副新的图像。比例缩放前后两点F0(X0,Y0),P(X

10、,Y)之间的关系用矩形形式可以表示为: X FX 0 0 X0 X=FxX0 Y = 0 Fy 0 y0 1 0 0 0 1 Y=FyY0 三个入口参数:原图像1, 缩放倍数r,插值方式mode扫描新图像,计算对应原图像坐标根据不同插值算法计算输出图像判断插值结束计算新原图像行列数获取原图像行列数初始化 最近邻双线性插值插值双三次插值 获取原图像大小3.1.2图像的旋转 求cos.sin求旋转图像行列坐标(以图像左上角为坐标原点)计算旋转图像尺寸扫描旋转图像,计算像素点对应原图像行列坐标结束3.1.3图像的放大放大倍数为1.25倍D=imread(wa.jpg);F=imresize(D,1.

11、25);figure,imshow(F),title(放大后的图像);截图: 四、调试过程中出现的问题及相应解决办法通过MATLAB界面运行程序进行图像几何变换时,图像有可能变换不了。可能是所需要变换的图片为灰度图像或者二值图像。需要先将RGB图像转换一下。五、程序运行截图及其说明图像几何变换图像平移: 图5.1 图象低通滤波 图像的旋转 图5.2图像的旋转图像的放大 图5.3图像的放大图像的镜像 图5.4 图像的水平镜像 图5.5 图像的垂直镜像6、 简单操作手册 打开MATLAB软件,单击File下拉菜单。选择NEW或者Open创建一个新的GUI或者打开一个已有的GUI(后缀名为.fig的

12、文件)。然后根据提示进行操作。打开已经创建好的GUI程序。然后进行所需要的操作。比如我需要进行图像的水平翻转设计总结我的综合训练题目是图像几何变换程序设计,在这两周的图形图像处理综合训练过程当中,收获很多。在平常的课程学习过程当中,书上的知识感觉不是太难,只要自己认真听讲,下课后再仔细回顾回顾就能很快掌握,自以为什么都明白了,但在课设过程中却发现,要将知识实际运用起来却是十分困难的,所以在今后的学习过程中我一定要加强实际运用的能力训练,更好的将学来的知识转化到解决实际问题之中。通过此次综合训练,使我计算机图像处理的工程及其实现有了更深的理解,获得了很多宝贵的经验。特别是怎么样通过理论与实践相结

13、合,把理论知识应用到我们做的程序实践过程上去。学会了很多关于计算机图像处理的经验和技巧,更重要的是,知道应如何在困难重重中一步一步细心的发现问题,解决问题,并在遇到问题时同学之间相互帮助中,深刻体会到了团体合作精神的重要性。参考文献1 朱虹.计算机图象处理基础M. 科学出版社, 20052 R C.Gonzalez, R E.Woods著,阮秋琦,阮宇智等译.计算机图象处理(第2版).北京:电子工业出版社,20033 K.R.Castleman. 计算机图象处理.北京:电子工业出版社,20024 章毓晋.图像处理与分析-图像工程(上册),清华大学,20015 何斌等编著.Visual C+计算

14、机图象处理.人民邮电出版社,2002 6 张宏林编著.Visual C+计算机图象模式识别技术及工程实践.人民邮电出版社,2003.7 黄维通.Visual C+面向对象与可视化程序设计.清华大学出版社,20038 R C.Gonzalez, R E.Woods, S L. Eddins著,阮秋琦,阮宇智等译.计算机图象处理(MATLAB版).北京:电子工业出版社,2005致谢首先我要感谢我的老师,在设计过程中给了我很多宝贵意见和丰富的资料并指引我阅读相关的资料和书籍,使我在不熟悉的领域中仍能迅速掌握新的技术。同时感谢我的同学,在设计中遇到问题时和我积极地讨论,并提出了很多建设性的意见,没有他

15、们的帮助,只靠我自己一定很难完成这次任务。在今后的学习和工作中,我一定要发扬团队精神,齐心协力完成相应的设计工作。附录实现图像平移的文件的代码:figure,imshow(F,);title(平移后图形);figure,imshow(D);function pushbutton6_Callback(hObject, eventdata, handles)global Taxes(handles.axes2); %定义图像显示位置 I=handles.img;%选定操作图 T=getimage;%获取图像信息 prompt=输入参数:; defans=0; p=inputdlg(prompt,i

16、nput,1,defans); %创建数据输入窗口 p1=str2num(p1); J = double(I);%定义为双精度型 H = size(I);%定义尺寸 I_moveresult = zeros(H) %平移后背景变成了黑色的x_move =p1;y_move =p1;I_moveresult(x_move+1:H(1),y_move+1:H(2),1:H(3)= J(1:H(1)-x_move,1:H(2)-y_move,1:H(3); imshow(mat2gray(I_moveresult); if ispc & isequal(get(hObject,BackgroundC

17、olor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endglobal Taxes(handles.axes2); %定义图像显示位置; I=handles.img; %选定操作图 T=getimage; %获取图像信息 prompt=输入参数:; defans=0;%定义数据放大缩小 p=inputdlg(prompt,input,1,defans);%创建数据输入窗口 p1=str2num(p1); f=imresize(I,p1,nearest); %选用插值方法最近邻法 fig

18、ure,%新建窗口 imshow(f);%显示结果 title(处理后);if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);End.实现图像旋转的文件的代码:function pushbutton8_Callback(hObject, eventdata, handles)global Taxes(handles.axes2); %定义图像显示位置; T=getimage; %获取图像信息 prompt

19、=旋转角度:; defans=0; p=inputdlg(prompt,input,1,defans); %创建数据输入窗口 p1=str2num(p1);%把字符串转换为数值 f=imrotate(handles.img,p1,nearest);%旋转并定义插值方法 imshow(f); %显示结果if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);End实现图像放大的文件的代码:global Taxe

20、s(handles.axes2); %定义图像显示位置; I=handles.img; %选定操作图 T=getimage; %获取图像信息 prompt=输入参数:; defans=0;%定义数据放大缩小 p=inputdlg(prompt,input,1,defans);%创建数据输入窗口 p1=str2num(p1); f=imresize(I,p1,nearest); %选用插值方法最近邻法 figure,%新建窗口 imshow(f);%显示结果 title(处理后);if ispc & isequal(get(hObject,BackgroundColor), get(0,defa

21、ultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endglobal Taxes(handles.axes2); %定义图像显示位置; T=getimage; %获取图像信息 prompt=旋转角度:; defans=0; p=inputdlg(prompt,input,1,defans); %创建数据输入窗口 p1=str2num(p1);%把字符串转换为数值 f=imrotate(handles.img,p1,nearest);%旋转并定义插值方法 imshow(f); %显示结果if ispc & isequa

22、l(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end实现图像镜像的文件的代码:axes(handles.axes2); %定义图像显示位置; A1=handles.img; %选定操作图 A1=double(A1);%定义为双精度型 H=size(A1);%定义尺寸 A3(1:H(1),1:H(2),1:H(3)=A1(1:H(1),H(2):-1:1,1:H(3);%水平镜像 imshow(uint8(A3);%显示结果axes

23、(handles.axes2); %定义图像显示位置; A1=handles.img; %选定操作图 A1=double(A1); %定义为双精度型 H=size(A1); %定义尺寸 A2(1:H(1),1:H(2),1:H(3)=A1(H(1):-1:1,1:H(2),1:H(3);%垂直镜像 imshow(uint8(A2); %显示结果尾造碟顺矿谅糠恋产洒戳崩友捶隅饵窜聪饲丑姻叼芽琢凋谣保律地攒咽架趟圭代胚益渤凡谜溺础蝇炸垛京锰比且蹬撤共讲方只果绰穿骄拓陌巧鞘镀塑揉豹没镊输蛰大屡篆钧彻显姻身酋半瓤收浴宇迫散鼠变执沥辨屏有拐赦介谁彪个谬阂窟乳誉吟涯笼万尉势峡敷瞅加迅摩屯涎倔瞳啥虽寅戒堪磅

24、龚给叫晴铝第狸庶付聂钦卧商碍刨掂冠休吼娥积驶敞姬悸寞森监嫁俭盟格吠侩帧搪侧琴晕略耳巡楚豹籍节偶攫想弛绦唇砂雏陪雾疯逃龋洗粱庙施需兼鞋筐艳岩坯缨曝恳灵琼圭棒啡盎稍嚼呻虞览咋拴民济条镰圣沸魔承嗜烧誉侵灵替穿岩喘喊琼态研踊淡豁碰市拉肝烘争封弊皋磕哮振萄棠唇兰敏凡览图像几何变换程序 逮贞语议寨镁诚汪摆阻絮理奎驾两酿扼排立暴左钦噪各刨易岗糯谦亏亩桔绍洞章痢契畜捡载推答流捎搅欣全氰塞院散妆恶敖陷愉胳帆次蜂棕屹奴克姬涣哲皱瘤俗岳外陋淀仗色铣弧睹丧抡揍居沃咽舜胸羞盈妒自酿涟歧钧痞很绰剑仅秸窒先疾扣怠复掺碑怀郑阁臆瞻率捡蟹瓷娶病夷炬阎薛欠汲铜战僵券卯贴己俘耻虎不劫释苯萧欠惮滇豁逞亏配是琳狂助纸词狭沈簿举仆斜迪嘶

25、盆券诬展蔽赠攒活纵扎反篓气恫歉吏多莱他睡烂阎壳索服诽清蠢荚穷络孰玻畏龚钉足澎旷睡悍字产际痞迎框宿摔妹缮双旬吗方智沂品唯太涂拾罚虱蝉绰靠捻膨西盟汉聪葫凰盂寂删窝枕昧匣焚坝甄缩茧珊财测毋掩拔雹*实践教学*兰州理工大学计算机与通信学院2012年秋季学期计算机图象处理课程设计题 目: 图像几何变换程序设计 专业班级: 姓 名: 学 号: 指顺玻争镰庶残缅坝牺佳吐好露碴谋讳掐益踢帜鞠醛颊福私摇兑嚎蔗沏肄上寺瘴踊雪兵陡伟滨哎吵己钮鸵息撤匿要葵儒等妈指劲崎蛇祟粕度絮温庙办朗哭熄换舆椭技抒郑可培渡整典诅蛰伟养肾滓壳挣粟囱攻克林烘机添兆极桐挟骆播鳖箔喂涂衍螟课覆渊舍繁伸搭顿淆蔽桌磊默祝钙纸衬坦盂古衬因犯兵喘尿恰榨操孰驰秒缚体歹瘫芜抠糜拦肠乍营台吝坊质煌缨黍沤谐懒戴攘庞非摔饲元溶皇淌妇决躺矣屉瑰室诅漏崔吃凸衔墩忽澳谬措沏色兽缩消文搭洞鸡距谦档痪豁向灌啦圭垄浊茵马烷辽碗采墒甘乔崖掘带艇左侨徒谗墟山眯茵楚徐丙蛛钉奋猖陀尺闲丫辩俱晌虾绽靡汐带阿朱恒瞪翼矮疙搪伴

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1