图像拼接技术的毕业设计内容摘要:

照相机放置与一个滑轨上,平行移动照相机进行拍摄。 (3) 手持照相机拍摄,站在原地拍摄四周,或者沿着照相机得光轴垂直方向走动拍摄。 12 旋转照相机拍摄 在这种情况下,放置照相机的三脚架在拍摄过程中一直在同一位置。 拍摄时,照相机绕垂直轴旋转,每旋转一定的角度,拍摄一张照片。 理想情况下,照相机不绕其光轴旋 转。 拍摄得到的一系列图像中相邻两张必须有部分重叠。 重叠区域大小是图像拼接效果重要的影响因素,重叠比例越大,拼接就越容易,但是需要的照片就多。 旋转照相机拍摄由于照相机固定,不需要更多的相机参数,比较容易实现。 但是由于采集的图像不在同一平面上,需要投影到同一平面上才能进行拼接,一般采用这种方法获取的图像序列常用来构成柱面或球面全景图。 平移照相机拍摄 平移照相机拍摄指的是照相机在一个平行于成像平面的方向上平移。 在固定焦距的情况下,照相机放置在一个滑轨上移动拍摄。 物体和照相机距离的远近,或者拍摄物体 大小的变化,都会影响到最后的拼接结果。 通过平移方式采集图像,保持图像与照相机平移方向平行至关重要,否则,照相机的移动会导致物体大小不同。 另外,由于拍摄的图像均在一个平面上,通过这种方法获得的全景图的 D3 效果不如旋转拍摄的好。 手持照相机拍摄 这种方法比较容易做到,手持相机原地旋转拍摄,或按某一路线平行于对象拍摄。 但是,拼接手持照相机拍摄的图像是很困难的,因为在拍摄过程中,照相机的运动情况非常复杂。 为了减少这些影响,可以增加重叠比例,使照相机旋转、平移减小,从而减小相邻图像的不连续程度。 以上方 法均不同程度的限制了照相机的运动,使获取的图像满足一定的要求。 但实际拍摄的图像由于光源变化、反光、场景中物体的运动、相机焦距的 13 改变和旋转等因素的影响,会存在光强的差异和小视差,给图像拼接增加了难度。 本文的工作和论文组织 本文的主要工作 本文的研究工作主要是针对在 Matlab 中实现图像拼接算法的研究。 重点针对现有的程序在拼接算法方面的不足提出合理的有效地改进。 主要研究内容如下: ( 1)查阅并学习了国内外大量的相关文献,对图像拼接领域的发展和国内外的研究现状有了一个总体的认识,对图像拼 接技术的特点和图像拼接技术的应用领域做了概括和分析。 ( 2) 对 Matlab 工具软件进行初步的认识,了解其功能组成以及发展概况。 ( 3)在 Matlab 工具软件中提出一种针对具有左右平移图像特点图像进行拼接的方法,总结该拼接过程的各个步骤,分析该拼接算法的优缺点。 ( 4)针对该算法的缺 点,本文提出了三点需要改进的方法,论证各个方法的可行性。 通过 实验证明各方法的有效性。 论文章节安排 论文全文共分五章。 第一章是绪论,简单介绍了图像拼接技术概念、研究背景,国内外图像拼接技术的研究状况、图像拼接技术的特 点、图像拼接技术的应用领域,图像拼接的基本流程以及图像获取的主要方法。 第二章介绍了数字图像处理软件 Matlab 的功能和组成,发展概况。 重点 14 介绍了 Matlab 二次开发的新特性。 第三章提出了一种针对具有左右平移图像特点图像进行拼接的方法,总结该拼接过程的各个步骤,分析该拼接算法的优缺点。 第四章针对以上拼接方法的不足,提出了三点需要改进的方法,实验证明各个方法的有效性。 第五章对论文所做的工作进行了总结,分析了工作中存在的问题,对图像拼接技术和以后的研究工作提出展望。 15 第二章 数字图像处理软件 MATLAB 简介 1980 年前后, Matlab 的首创者 Cleve Moler 博士在 New Mexico 大学讲授线性代数课程时,看到了用高级语言编程解决工程计算问题的诸多不便,因而构思开发了 Matlab 软件 (Matrix Laboratory,矩阵实验室 )。 该软件利用了 Moler博士在此前开发的 LINPACK(线性代数软件包 )和 EISPACK(基于特征值计算的软件包 )中可靠的子程序,用 Fortran 语言编写而成,集命令翻译,工程计算功能于一身。 与 Fortran 语言和 C 等高级语言比较, Matlab 的语法规则更简单,更重要的是它贴近人思维方式的编程特点,使得用 Matlab 编写程序有如在便笺上列公式和求解。 Matlab 的功能和组成 80 年代初期, Cleve Moler 和 John Little 采用 C 语言改写了 Matlab 的内核。 不久,他们成立了 Mathworks 软件开发公司并将 Matlab 正式推向市场。 Matlab 的功能 现在的 Matlab 新版本早己不只停留在工程计算功能上,它由主包、Simulink 以及功能各异的工具箱组成,以矩阵运算为基础,把计算、可视化、程序设计融会到 了一个简单易用的交互式工作环境中。 在这里可以实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘图、应用程序设计 (包括图形用户界面设计 )等功能。 正是凭借 Matlab 的这些突出的优势,它现在己成为世界上应用最广泛的工程计算软件。 在美国等发达国家的大学里 Matlab 是一种必须掌握的基本工 16 具,而在国外的研究设计单位和工业部门,更是研究和解决工程计算问题的一种标准软件。 在国内也有越来越多的科学技术工作者参加到学习和倡导这门语言的行列中来。 在大家的共同努力下, Matlab 正在成为计 算机应用软件中的一个新热点。 Matlab 的组成 Matlab 软件主要由主包、 Simulink 和工具箱 3 部分组成。 (一) Matlab 主包 Matlab 主包包括以下 5 个部分。 (1)Mat1ab 语言 Matlab 语言是一种基于矩阵 /数组的高级语言,它具有流程控制语句、函数、数据结构、输入输出,以及面向对象的程序设计特性。 用 Matlab 语言可以迅速地建立临时性的小程序,也可以建立复杂的大型应用程序。 (2)Matlab 工作环境 Matlab 工作环境集成了许多工具和程序,用户用工作环境中提供的功能完成他们的工作。 Matlab 工作环境给用户提供了管理工作空间内的变量和输入、输出数据的功能,并给用户提供了不同的工具用以开发、管理、调试 M文件和 Matlab 应用程序。 (3)句柄图形 句柄图形是 Matlab 的图形系统。 它包括一些高级命令,用于实现二维和三维数据可视化、图像处理、动画等功能。 还有一些低级命令,用来定制图形的显示以建立 Matlab 应用程序的图形用户界面。 (4)Matlab 数学函数库 17 Matlab 数学函数库是数学算法的一个巨大集合,该函数库既包含了诸如求和、正弦、余弦、复数运算之类的简单函数。 也 包含了矩阵转置、特征值、贝塞尔函数、快速傅立叶变换等复杂函数。 (5)Matlab 应用程序接口 (API) Matlab 应用程序接口是一个 Matlab 语言向 C 和 Fortran等其他高级语言进行交互的库,包括读写 Matlab 数据文件 (MAT 文件 )。 (二) Simulink Simulink 是用于动态系统仿真的交互式系统。 Simulink 允许用户在屏幕上绘制框图来模拟一个系统,并能够动态地控制该系统。 Simulink 采用鼠标驱动方式,能够处理线性、非线性、连续、离散、多变量以及多级系统。 此外,Simulink 还 为用户提供了两个附加项 :Simulink Extensions(扩展 )和 Blocksets 3(模块集 )。 Simulink Extensions 是一些可选择的工具,支持在 Simulink 环境中开发的系统的具体实现,包括 : ● Simulink Accelerator ● RealTime Workshop ● RealTime Windows Target ● Stateflow Blocksets 是为特殊应用领域中设计的 Simulink 模块的集合。 包括以下几个领域的模块集 : ● DSP(数字信号处理 ) ● FiedPoint(定点 ) ● Nonlinear Control Design(非线性控制设计 ) ● Communications(通信 ) 18 (三) Matlab 工具箱 工具箱是 Matlab 用来解决各个领域特定问题的函数库,它是开放式的,可以用,也可以根据自己的需要进行扩展。 Matlab 提供的工具箱为用户提供了丰富而实用的资源,工具箱的内容非常广泛,涵盖了科学研究的很多门类。 目前,己有涉及数学、控制、通信、信号处理、图像处理、经济、地理等多种学科的二十多种 Mat lab 工具箱投入应用。 这些工具箱的作者都是相关领域 的顶级专家,从而确定了 Matlab 的权威性。 应用 Matlab 的各种工具箱可以在很大程度上减小用户编程时的复杂度。 而 Mathworks 公司也致力于追踪各学科的最新进展,并及时推出相应功能的工具箱,毫无疑问, Matlab 能在数学应用软件中成为主流是离不开各种功能强大的工具箱的。 Mathworks 公司自 1984 年正式推出 Matlab 后,经过这些年的不断更新,交互性越来越好,功能越来越强大,己经成为国际公认的最优秀的数学应用软件之一。 Matlab 的发展历程 Matlab 软件从 1984 年推出的第一个版本 到目前己经发布了 12 个版本,第 12 个版本是 Mat . 在这些版本中,具有划时代意义的是该公司于 1992 年推出的 版,其微机版于 1993 年完成。 从该版本开始, Matlab 由 DOS 下的应用程序改进为 Windows 下的应用程序,更易于操作,从而大大拓展了其应用范围并加速了该软件的更新过程。 同时,在这个版本中, Mathwork 公司推出了用于 19 控制系统仿真和设计的交互式模型输入与仿真环境 simulink ,为控制系统的计算机辅助设计打开了局面。 1994 年推出的 版本扩充了 版本 的功能,尤其在图形界面设计方面提供了新的方法。 Matlab 在国内的大范围推广就是从 版本开始的。 此后的 Matlab , , 到 1999 年 1 月推出的 版本,分别在前面版本的基础上前进了一大步。 目前使用的为最新的 版本。 Matlab 二次开发的新特性 在市场经济条件下,技术创新与产品更新的步伐越来越快,企业间在技术领域正面临着激烈的竞争。 为了迎接这些挑战,工程师们需要能够加速设计流程的工具来帮助他们发现新的途径,并获得技术上的突破。 MathWorks 公司的MATLAB 系列产品所具备的优势能够很好地解决上面的问题,现今已发展成为工业界产品设计和开发的标准平台。 作为业界标准的科学计算环境,MATLAB 系列产品涵盖了建模,仿真,分析到样机的全部设计流程,支持的专业技术领域非常广泛,包括力学,控制, DSP,图像,通讯,电子等。 MATLAB系列产品能够帮助工程师很好地完成产品开发流程中的各项任务,这些任务主要包括:数值计算,编程与算法开发,数据分析与可视化,系统建模与仿真,快速原型与实现。 ( 1) 数值计算 MATLAB 提供了大约 600 多个数学和工程上常用的函数。 这些函数的数值运算是针对矩阵操作优化过的,所以用户可以使用他来代替底层编程语言如C 语言。 在保持同样性能的情况下,编程工作量非常小,特别是在 MATLAB 20 以后,数值计算采用了 LAPACK, BLAS, FFTW 等优秀数学函数库,使得计算效率得到进一步的提升。 ( 2) 算法开发 强大的计算能力,方便易用的编程语言和丰富的数学函数使 MATLAB 最适用于算法开发工作。 典型的应用包括:数据分析,信号处理,图像处理,系统建模和高级算法研究等。 并且不管用户是使用已有的算法,还是自行开发,MATLAB 提供了一个通用的平台。 使用 MATLAB 进行算法开发就像平时书写数学表达式一样。 ( 3) 数据分析与可视化 通过 MATLAB,用户可以分析所有类别的数据包括信号,图像,多项式,时间历程,多变量数据和线性系统等。 从分析中总结出来的结果可以作为将来进一步的算法和模型开发的基础。 此外,用户可以快速地将代码片段和知识转换成可以重复使用的自动分析例程,不需要变量声明和维数定义,可很快编写出程序。 ( 4) 系统建模与仿真 建立在 MATLAB 强大的数学内核基础之上, Simulink 采用框图方式方便地对非线性动态系统进行建模,仿真和分析。 模型可以是含有离散时 间、连续时间系统或混合的系统。 针对不同的专业, Mathworks 还提供了专业的功能模块库,能够对包含控制系统,信号处理系统,通讯系统,电力系统等多学科的复杂系统进行仿真和分析。 利用 Simulink 提供的子系统和 Sfunction 功能,用户可以方便地建立自己的专业模块库,或将已有的代码结合到仿真模型中使用。 ( 5) 快速原型与实现 21 RealTime Workshop 与 Stateflow Coder 直接从 Simulink 模型与 Stateflow框图中生成高效的可移植代码。 只需要简单的操作,用户无需繁琐的手工 编程与调试就可以生成应用代。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。