毕业设计(论文)全景环视技术.doc

上传人:laozhun 文档编号:4056216 上传时间:2023-04-02 格式:DOC 页数:31 大小:264KB
返回 下载 相关 举报
毕业设计(论文)全景环视技术.doc_第1页
第1页 / 共31页
毕业设计(论文)全景环视技术.doc_第2页
第2页 / 共31页
毕业设计(论文)全景环视技术.doc_第3页
第3页 / 共31页
毕业设计(论文)全景环视技术.doc_第4页
第4页 / 共31页
毕业设计(论文)全景环视技术.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《毕业设计(论文)全景环视技术.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)全景环视技术.doc(31页珍藏版)》请在三一办公上搜索。

1、目录第1章 引言41.1 课题背景41.2 课题的研究现状41.2.1 虚拟现实的概念41.2.2 虚拟现实的目标51.2.3 虚拟现实的类型61.3 课题的难点和重点方向8第2章 软件设计平台92.1 全景环视技术92.2 设计平台102.2.1 Visual Studio 2010102.2.2 Flash MX112.2.3 OpenGL122.2.4 Dreamweaver13第三章 设计思想143.1 图像采集143.2 读取图片163.3 处理图片183.4 制作全景效果213.5 上传网页21第4章 设计方案224.1 图像处理设计224.1.1 图形输入类(BMPInput)2

2、34.1.2 图形处理类(BMPProcess)254.1.3 图形输出类(BMPOutpue)264.1.4 功能检测类(BMPAbility)284.1.5 系统交互294.2 Flash动画脚本设计294.2.1 主场景的制作294.2.2 数据显示的制作304.3 全景效果31第5章 结束语32摘要全景环视技术是虚拟现实技术的重要课题,文章详细介绍了全景环视技术的实现原理,并使用最新的算法进一步对其关键技术进行改进和优化,同时实现了一例改进后的全景环视技术供读者理解和对比。关键字:全景环视,虚拟现实,图像拼接,Harris角点第1章 引言1.1 课题背景自从计算机诞生以来,其在人类社会

3、中的重要性日趋增长。其表达方式也发生的重大的变化,由单一的文字表达,到结合声音、图片、影音、动画展现,直到现在的3D动画、虚拟现实。虚拟现实技术拥有广阔的发展空间,因为其不仅可以模拟出我们的现实世界,同时也可以实现人类的梦想空间。通过硬件或者软件使得使用者具有极强的临境感。全景环视技术,作为一种虚拟现实的实现方式,今年来受到了广泛的重视。其具有较强的临境感,同时对硬件和软件的需求较其他同时虚拟现实方式简单易实现。随着网络的发展,电子商务的展开,全景技术的优势更加明显。较好的效果,较低的资源占用量都使得其能更好的适应现阶段的网络状况完成虚拟现实技术在电子商务中的作用。1.2 课题的研究现状1.2

4、.1 虚拟现实的概念虚拟现实(简称VR:Virtual Reality),又称临境技术,是最近几年得到迅速发展的技术。“虚拟现实”一词是由美国VPL Research Inc公司的J.Lanier在1989年所创造的,它通常是指用一系列传感辅助设施来实现的一种三维现实,人们通过这些设施以自然的运动方式(如头的转动、身体的运动等)向计算机送入各种各样动作信息,并且通过视觉、听觉以及触觉等感知输出设备使人们得到三维的视觉、听觉及触觉等感觉世界。随着人们不同的动作,这些感觉也随之改变。目前,与虚拟现实相关的内容已经扩大到了与之相关的许多方面,像“人工现实(Artificial Reality)”、“

5、遥现(Telepresence)”、“虚拟环境(Virtual Environment)”、“赛伯空间(Cyberspace)”等,都可以认为是虚拟现实的不同术语或形式。事实上,虚拟实现技术不仅仅是指那些戴着头盔和手套的技术,而且还应该包括一切与之有关的具有自然模拟、逼真体验的技术与方法。它要创建一个酷似客观环境又超越客观时空、能沉浸其中又能驾驭其一的和谐人机环境,也就是由多维信息所构成的可操纵的空间。从本质上说,虚拟现实技术就是一种先进的计算机用户接口技术,它通过给用户同时提供诸如视、听、触等各种直观而又自然的实时感知交互手段,最大限度地方便用户的操作,从而减轻用户的负担,提高整个系统的工作

6、效率。 它的最重要的目标就是真实的体验和方便自然的人机交互,能够达到或者部分达到这样目标的系统就称为虚拟现实系统。虚拟现实系统就是要利用各种先进的硬件技术及软件工具,设计出合理的硬件、软件及交互手段,使参与者能交互式地观察和操纵系统生成的虚拟世界。从概念上讲,任何一个虚拟现实系统都可以用三个“I”来描述其特性,这就是“沉浸(Immersion)”、“交互(Interaction)”和“想象(Imagination)”。1.2.2 虚拟现实的目标 虚拟现实系统的设计要达到以下目标: 第一,要使参与者有“真实”的体验。这种体验就是“沉浸”或“投入”,即全心地进入,简单地说就是产生在虚拟世界中的幻觉

7、。理想的虚拟环境应达到用户难以分辩真假的程度,甚至比真的还“真”。这种沉浸感的意义在于可以使用户集中注意力。为了达到这个目标,就必须具有多感知的能力,理想的虚拟现实系统应具备人类所具有的一切感知能力,包括视觉、听觉、触觉,甚至味觉和嗅觉。 第二,系统要能提供方便的、丰富的、主要是基于自然技能的人机交互手段。这些手段使得参与者能够对虚拟环境进行实时的操纵,能从虚拟环境中得到反馈信息,也能便系统了解参与者的关键部位的位置、状态、变形等各种系统要知道的数据。实时性是非常重要的,如果在交互时存在较大的延迟,与人的心理经验不一致,就谈不上以自然技能的交互,也很难获得沉浸感。为达到这个目标,高速计算和处理

8、就必不可少。 参与者在虚拟环境中的活动或者经历有两种形式,一种是主观参与,另一种是客观参与。主观参与时,参与者是整个经历的中心,一切围绕参与者进行;客观参与时参与者则可以在虚拟环境中看到他自己与其它物体的交互。交互和沉浸是任何虚拟现实经历的两个实质性的特征,因此,根据虚拟现实应用的不同,即沉浸的程度,它可以分成不同的类别。早期的虚拟现实系统可能只有部分虚拟现实的特性,例如环幕电影或立体电影。有的应用也不需要完全的沉浸和投入,例如增强现实系统。在实际应用中,不同虚拟现实系统设计的侧重点和所受约束各不相同。例如,受资金限制装备不上最先进的硬件设备,或是硬件本身性能达不到要求,这样系统的计算速度、交

9、互手段可能要受到影响,此时只能从软件上着手弥补缺陷,产生了许多基于软件的技术,例如基于静态图像的虚拟现实系统、虚拟仿真等。由于虚拟现实本身并不限制使用的技术范围,只要能达到目标,可以把各种技术有效地集成起来设计出一个成功的虚拟现实系统。1.2.3 虚拟现实的类型 VR最本质的特征用户对虚拟场景的沉浸,根据用户参与VR的不同形式以及沉浸的程度不同,我们可以把各种类型的虚拟现实技术划分四类:1、桌面级的虚拟现实 桌面虚拟现实利用个人计算机和低级工作站进行仿真,计算机的屏幕用来作为用户观察虚拟境界的一个窗口,各种外部设备一般用来驾驭虚拟境界,并且有助于操纵在虚拟情景中的各种物体。这些外部设备包括鼠标

10、,追踪球,力矩球等。它要求参与者使用位置跟踪器和另一个手控输入设备,如鼠标,追踪球等,坐在监视器前,通过计算机屏幕观察360度范围内的虚拟境界,并操纵其中的物体,但这时参与者并没有完全投入,因为它仍然会受到周围现实环境的干扰。桌面级的虚拟现实最大特点是缺乏完全投入的功能,但是成本也相对低一些,因而,应用面比较广。 常见桌面虚拟现实技术有:1)基于静态图像的虚拟现实技术:这种技术不采用传统的利用计算机生成图像的方式,而采用连续拍摄的的图像和视频,在计算机中拼接以建立的实景化虚拟空间,这使得高度复杂和高度逼真的虚拟场景能够以很小的计算代价得到,从而使得虚拟现实技术可能在PC平台上实现。2) VRM

11、L(虚拟现实造型语言):它是一种在Internet网上应用极具前景的技术,它采用描述性的文本语言描述基本的三维物体的造型,通过一定的控制,将这些基本的三维造型组合成虚拟场景,当浏览器浏览这些文本描述信息时,在本地进行解释执行,生成虚拟的三维场景。VRML的最大特点在于利用文本描述三维空间,大大减少了在Internet网上传输的数据量,从而使得需要大量数据的虚拟现实得以在Internet网上实现。3) 桌面CAD系统:利用Open GL、DirectDraw等桌面三维图形绘制技术对虚拟世界进行建模,通过计算机的显示器进行观察,并有能自由地控制的视点和视角。这种技术在某种意义上来说也是一种虚拟现实

12、技术,它通过计算机计算来生成三维模型,模型的复杂度和真实感受桌面计算机计算能力的限制。2、投入级的虚拟现实 高级虚拟现实系统提供完全投入的功能,使用户有一种置身于虚拟境界之中的感觉。它利用头盔式显示器或其它设备,把参与者的视觉、听觉和其它感觉封闭起来,并提供一个新的、虚拟的感觉空间,并利用位置跟踪器、数据手套、其它手控输入设备、声音等使得参与者产生一种身在虚拟环境中、并能全心投入和沉浸其中的感觉。 常见的沉浸式系统有: 1) 基于头盔式显示器的系统:在这种系统中,参与虚拟体验者要戴上一个 头盔式显示器,视听觉与外界隔绝,根据应用的不同,系统将提供能随头部 转动而随之产生的立体视觉、三维空间。通

13、过语音识别、数据手套、数据服 装等先进的接口设备,从而使参与者以自然的方式与虚拟世界进行交互,如 同现实世界一样。这是目前沉浸度最高的一种虚拟现实系统。2) 投影式虚拟现实系统:它可以让参与者从一个屏幕上看到他本身在虚拟境界中的形象,为此,使用中电视技术中的“键控”的技术,参与者站在某一纯色(通常为兰色)背景下,架在参与者前面的摄像机捕捉参与者的形象,并通过连接电缆,将图像数据传送给后台处理的计算机,计算机将参与者的形象与纯色背景分开,换成一个虚拟空间,与计算机相连的视频投影仪将参与者的形象和虚拟境界本身一起投射到参与者观看的屏幕上,这样,参与者就可以看到他自己在虚拟空间中的活动情况。参与者还

14、可以与虚拟空间进行实时的交互,计算机可识别参与者的动作,并根据用户的动作改变虚拟空间,比如来回拍一个虚拟的球或走动等,这可使得参与者感觉就象是在真实空间中一样。3) 远程存在系统:远程存在系统是一种虚拟现实与机器人控制技术相结合的系统,当某处的参与者操纵一个虚拟现实系统时,其结果却在另一个地方发生,参与者通过立体显示器获得深度感,显示器与远地的摄像机相连;通过运动跟踪与反馈装置跟踪操作员的运动,反馈远地的运动过程(如阻尼、碰撞等),并把动作传送到远地完成。3、增强现实性的虚拟现实 增强现实性的虚拟现实不仅是利用虚拟现实技术来模拟现实世界、仿真现实世界,而且要利用它来增强参与者对真实环境的感受,

15、也就是增强现实中无法感知或不方便感知感受。这种类型虚拟现实典型的实例是战机飞行员的平视显示器,它可以将仪表读数和武器瞄准数据投射到安装在飞行员面前的穿透式屏幕上,它可以使飞行员不必低头读座舱中仪表的数据,从而可集中精力盯着敌人的飞机和导航偏差。4、分布式的虚拟现实如果多个用户通过计算机网络连接在一起,同时参加一个虚拟空间,共同体验虚拟经历,那虚拟现实则提升到了一个更高的境界,这就是分布式虚拟现实系统。目前最典型的分布式虚拟现实系统是作战仿真互联网和SIMNET,作战仿真互联网(Defense Simulation Internet, DSI)是目前最大的VR项目之一。该项目是由美国国防部推动的

16、一项标准,目的是使各种不同的仿真器可以在巨型网络上互联,它是美国国防高级研究计划局1980年提出的SIMNET计划的产物。SIMNET由坦克仿真器(Cab类型的)通过网络连接而成,用于部队的联合训练。通过SIMNET,位于德国的仿真器可以和位于美国的仿真器一样运行在同一个虚拟世界,参与同一场作战演习。1.3 课题的难点和重点方向与现在大多数的全景环视技术实现方式不同,在实现过程中将不使用PhotoShop进行图像拼接,拼接过程将全部使用C+语言实现。放弃使用PhotoShop将使得程序的设计难度大大提高,但同时程序可以根据情况具有更高的灵活度。拼接算法的选择和实现技巧就成为了软件完成是主要需要

17、考虑的问题。同时拼接时间和效果的权衡也成为软件的一个考虑方向。在设计时,参考国内外最新的论文资料作为算法改进的基础,同时对算法进行时间复杂度和空间复杂度的评估,力求找出较好的平衡点,使得软件具有良好的性能。第2章 软件设计平台2.1 全景环视技术基于桌面级虚拟现实技术的全景环视技术,就是把相机环绕一固定轴线旋转360拍摄的一组照片拼接成一个完整的全景图像,并可以在Internet上播放、显示。观看者可以通过鼠标对环视的方向进行调整,可上、可下、可左、可右、可近、可远,使得用户感觉身临其境,好像在一个窗口前浏览一个现实的场景。在过去,价格昂贵的全景摄影机虽然也可以拍摄出360的高质量全景照片,但

18、由于其文件格式问题,却很难在Internet上浏览。现在,飞速发展的计算机多媒体技术使得高质量全景照片有了全新的内涵和更加广泛的应用。事实上,如今有大量的网站可以提供全景照片:从大学校园到旅游公司,从软件厂商到商品广告,从业余爱好者到专业摄影者,直至地方政府机构等等。全景环视技术出现在网页中使得网页交互性更强,对用户更具有吸引力。 从严格意义上说,全景环视技术并不是真正意义上的三维图形技术,它发展较快的原因是因为其有下述几个优点: 1) 通过实地拍摄,有照片级的真实感。2)有一定的交互性,可以用鼠标控制环视的方向,可上下、左右、远近控 制浏览。 3)基于常见流媒体格式,不需要单独下载插件。 随

19、着全景的发展,现在有主要有以下三种方式:1)柱形全景:柱形全景是最简单的全景摄影。您可以环水平360度观看四 种的景色,但是如果用鼠标上下拖动时,上下的视野将受到限制。看不 到天顶,看不到地面。这是应为普通相机拍摄照片的视角小于180度。 显然这种照片的真实感不理想2)球形全景:球形全景视角时水品360度,垂直180度的全视角。可以说 您已经融入虚拟环境之中了。3) 对象全景:拍摄时对象动,相机不动。完成后,可以对对象进行全面的 观察。对象全景较于以上两种可以对客观物体具有直观全面的演示效果, 正是由于其这种特性,使得其在电子商务领域获得了广泛的应用。文中将实现一种柱形全景作为演示,通过鼠标的

20、左右前后调节可以对一个视点周围的景物进行观察。2.2 设计平台软件设计时将使用到很多的开发软件,以下会对将会用到的开发软件进行一些简单的说明。2.2.1 Visual Studio 2010Visual Studio是由Microsoft公司推出的编程平台,其被用来在Windows平台下创建Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。Visual Studio的出现大大降低了开发人员在设计代码时所遇到的困难,其可以将主要的精力投入到实现软件所需要的算法和思想,而不是像以前一样将精力放在怎样使用一种平台。自其诞生以来,Microsoft投入了

21、大量的人力和物力来改进其性能和扩展其功能。Visual Studio 97是最早的Visual Studio版本。包含有面向Windows开发使用的 Visual Basic 5.0、Visual C+ 5.0,面向 Java 开发的 Visual J+ 和面向数据库开发的Visual FoxPro,还包含有创建DHTML(Dynamic HTML)所需要的Visual InterDev。其中,Visual Basic和Visual FoxPro使用单独的开发环境,其他的开发语言使用统一的开发环境。 1998年,Microsoft发布了 Visual Studio 6.0。所有开发语言的开发环

22、境版本均升至 6.0。这也是Visual Basic最后一次发布,从下一个版本 (7.0) 开始,Microsoft Basic进化成了一种新的面向对象的语言:Microsoft Basic NET。由于Microsoft公司对于Sun公司Java语言扩充导致与Java 虚拟机不兼容被 Sun告上法庭,Microsoft在后续的Visual Studio中不再包括面向Java 虚拟机的开发环境。 2005年,Microsoft发布了 Visual Studio 2005。.NET 字眼从各种语言的名字中被抹去,但是这个版本的Visual Studio仍然还是面向 .NET 框架的(版本2.0)

23、。 这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的Visual Studio Express 版本。2007年,Microsoft发布了Visual Studio 2008。在这个版本中,最大的改动就是Microsoft宣布不再支持Java。所以,无论是Java,还是J#都从这个版本中消失了。本软件将在设计中使用最新的版本Visual Studio 2010,该版本支持最新的C+标准,并且增强了IDE,提高了编程的效率。同时其具有对Windows 7极强的兼容性,可以适应当前操作系统的发展趋势。正是由于其这些特点,软件在设计过程是将其作为图

24、片处理平台。2.2.2 Flash MX Flash是美国的MACROMEDIA公司于1999年6月推出的优秀网页动画设计软件。它是一种交互式动画设计工具,用它可以将音乐,声效,动画以及富有新意的界面融合在一起,以制作出高品质的网页动态效果。 Flash前身是Future Splash。Flash1.0版本诞生于1996年,由于当时的网络大背景,Flash在出道之时并没有得到计算机行业应有的重视,Flash真正的火爆是从Flash3.0版本开始的,到了1999年6月发布的Flash4.0版本,其制作的动画开始大量的在网上传播,已经逐渐成为了网页交互多媒体动画设计软件的标准。因为HTML语言的功

25、能十分有限,无法达到人们的预期设计,以实现令人耳目一新的动态效果,在这种情况下,各种脚本语言应运而生,使得网页设计更加多样化。然而,程序设计总是不能很好地普及,因为它要求一定的编程能力,而人们更需要一种既简单直观又功能强大的动画设计工具,而Flash的出现正好满足了这种需求。 Flash的相比与其他网络网络动画设计软件有以下几个特点: 1)Flash是一个矢量动画设计软件 矢量图是计算机利用点和线的属性方式来表达的,可以通过对图像中的点进行移动和达到修改图像的目的。矢量图的特点在于图像文件小,而且对于图像的放大和缩小均不会影响图像的质量。 2)图像质量 由于Flash动画采用的是矢量图像,所以

26、在输出动画方面更加适合于卡通动画制作,如今网络上的动画演示也以卡通动画为主。用Flash动画来比较GIF动画,Flash动画则具有明显的优势,一是因为Flash动画使用矢量图像,相应的文件大小要比GIF动画小的多,再加上GIF动画只能输出256色,已经远远不能满足大众对动画图像的要求。而Flash输出动画图像为真彩,具有真正的多媒体意义。 3)流式播放 Flash动画本来就很小,再加上Flash动画采用如今先进的“流”式播放技术,即用户可以边下载边观看,完全适应了当今网络的带宽问题,使得 用户观看动画再也不用等待。4)多样的导入导出格式 Flash支持多样的文件导入导出,不仅可以输出.fla动

27、画格式,还可以以.avi、.gif、.html、.mov、.smil、和可执行文件的.exe等多种文件格式输出。即便用户不会使用这些相关软件的制作也一样可以用Flash解决。 5)ActionScript脚本 ActionScript脚本开发可能是Flash版本最伟大的改进,比之Director的Lingo语言,ActionScript脚本的简单易学和易用性,对初学者也是体贴倍至。使用全新的脚本开发功能,交互性的多媒体更加强劲,面向对象的脚本编程使Flash更像是一个强大的程序开发软件,从此以后,Flash已经不再是一个设计软件,它朝着集编程、美工、设计众多强势于一身的方向大步迈进。正是由于F

28、lash集众多优点与一身,而且有便于在网络发布和传播,所以软件设计时采用Flash MX作为动画制作的平台。2.2.3 OpenGL OpenGL是行业领域中最为广泛接纳的 2D/3D 图形 API, 其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。OpenGL是独立于视窗操作系统或其它操作系统的,亦是网络透明的。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。

29、IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。 OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C+紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使

30、用简便,效率高。它具有七大功能: 1) 建模 OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供 了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制数。 2) 变换 OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、变比镜像四种变换,投影变换有平行投影和透视投影两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。 3) 颜色模式设置OpenGL颜色模式有两种,即RGBA模式和颜色索引。 4) 光照和材质设置 OpenGL光有辐射光、环境光、漫反射光和镜面光。材质是用光反射率来表示。场景中物体最终反映到人眼的颜色是光的红绿蓝分量

31、与材质红绿蓝分量的反射率相乘后形成的颜色。 5) 纹理映射 利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。 6) 图像处理 位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合、反走样和雾的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。 7) 双缓存动画 双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。 此外,利用OpenGL还能实现深度暗示、运动模糊等特殊效果。从而实现了消隐算法。基于OpenGL的上述优点,在关键的图像处理和效果测试部分将使用OpenGL完成。2.2.4 Dreamweave

32、rDreamweaver是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。本软件将使用Dreamweaver完成全景环视发布到网页的功能。正是由于其强大的跨平台性和兼容性使得其可以完成此任务。第三章 设计思想在设计本软件时,需要进行五步操作,分别是:图像采集,读取图片,处理图片,制作全景效果,发布到网页。其流程图如图2.1所示。图2.1 系统流程图接下来,将对以上五步的设计思想做一个详细的介绍。3.1 图像采集全景拍摄需要准备这些

33、硬件:数码相机:从理论上来说,数码相机和传统的光学相机都可以使用。但是数 码相机图片直接为电脑可以接受的格式,而光学相机还需要经过 特定的仪器转换(如扫描仪)才可直接被读取,为求简便,使用 数码相机。中焦镜头:镜头的选择尽量使用中焦或者长焦镜头,镜头角度越小,图像扭 曲程度越小,在处理时,程序识别其的概率就高,为后期处理提 供方便。摄影支架:摄影支架为固定相机所用,防止相机抖动为图像处理增加难度, 甚至出现无法识别的图像。 广义的全景照片(Panorama Pictures)泛指所有大视角的照片,传统摄影中用超广角鱼眼镜头所拍摄的照片也称为全景照片,但那种照片透视效果强烈,影像完全变形。这里所

34、讨论的全景照片指通过拼接所形成的大视角照片,可以是一维拼接(最常用,横或纵向),也可以是二维拼接(横向和纵向全部拼接)。以拍摄者和被摄体的相对位置来分,可以是相机旋转拍摄,也可以是相机平移拍摄(类似散点透视),还可以围绕被摄体拍摄。并非所有的拍摄对象都适合于用全景照片来表现,近距离的景物拍摄制作比较费力一些,移动的物体几乎无法拍摄。 在镜头的选择上,一般人人认为拍摄全景照片时要使视角尽可能的大,这样需要拼接的照片幅数少,在拼接时所需要的处理次数就少,从而提高了效率。其实这是一种误解。现代普通镜头都使用的是“鱼眼镜”,视角越大的镜头在边缘的偏移程度越大,对拼接操作造成的难度也随之提高,甚至有可能

35、出现无法拼接的情况。拍摄全景照片时,建议利用三角架将相机固定,且让相机保持水平于地面。相机位置的选择,最好是选择固定于脚架的旋转中心与相机的旋转轴心在同一垂直线。由于拍摄全景图无法一次将360度场景拍摄下来,所以必须分角度依序旋转且一张一张的拍摄下来。相机为旋转的中心点,分别以等角度,分批将该场景拍摄下来,每张照片必须有重叠部分,建议重叠部分至少15%以上,这样的连续照片才有缝合的空间。普通全景拼接使用了第三方的图像处理软件,为了防止出现拼接痕迹较强的情况,即“鬼影”,建议照片接缝处选在无明显标识的地方。由于采用了新的图像拼接技术,故建议选在有明显标识的地方,利于识别,软件将通过特殊的算法对“

36、鬼影”进行消除。 拍摄时最好使用三脚架来固定其旋转中心,若有全景头,可将其固定于相机与脚架之间,且用上面的水平仪调整至完全水平为止。若无该设备亦可采用脚架含水平仪与刻度,如此用手动调整角度来控制拍摄方向。若以上设备取得困难,则先在心中有个时钟的刻度,然后面对拍照的起始点为12点钟方向,向左一格为11点钟方向,向右一格为1点钟方向,每格角度为30度,但这只是适用在30度12张的时候,也可以在一张大纸上画刻度,然后放在地上,模拟刻度。这些都只是辅助使用者在判断方位的准则,但重要的一点是每张照片都要有重叠部分,少了重叠部分,缝合的图片会变的很怪异。还有相机尽量保持与地面成水平,否则不易缝合。另外一点

37、就是,要记下所用的镜头焦距及旋转角度,当然拍摄的张数也要知道,这将方便未来在进行缝图处理的参考数值。3.2 读取图片经过图片采集的信息并不能直接被电脑处理,我们必须要通过与图片格式相对应的读取方法,找到此种格式的数据区,将各个像素的色彩信息存入到一个二维数组中。二维数组的行列参数就代表其在原图中的位置,其内容就为原图中的色彩信息。本软件图片的来源格式为BMP格式文件,BMP格式文件是Windows操作系统中标准图像文件格式,可以分成两类:设备无关位图(DIB)和设备相关位图(DDB)。设备相关位图在以前得到过广泛的应用,由于其兼容性较差,现在除被一些特殊的设备使用外,普通的BMP格式文件一般为

38、设备无关位图,因为其具有更好的兼容性。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。 由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。BMP格式的文件包括两个部分,文件头部分和数据部分。其中文件头部分主要存储了BMP文件的各种属性,可以划分为三个部分,图像文件头、图像信息头和调色板。各种信息按顺序从文件的起始位置排列,我们只需

39、依次读取其中的各种信息即可。图像文件头主要规定了文件的大小和数据的起始位置等,其具体包含属性如图2.2所示。图2.2 图像文件头bfType为2字节数据,表示文件的类型,必须为“BM”。bfSize为2字节数据,表示文件的大小,以字节为单位。bfReserved1为2字节数据,保留字,必须为“0”。bfReserved2为2字节数据,保留字,必须为“0”。bfOffBits为2字节数据,表示文件数据的起始位置,以相对于文件头的偏移位置来计算,单位为字节。图像文件头一共占14字节,之后就是图像信息头。图像信息头拥有图像的很多具体属性,对图像的操作和统计有很大的作用,其具体包含属性如图2.3所示。

40、图2.3 图像信息头biSize为2字节数据,表示此结构所占的大小,以字节为单位。biWidth为4字节数据,表示位图的宽度,以像素为单位。biHeight为4字节数据,表示位图的高度,以像素为单位。biPlanes为2字节数据,表示目标设备平面数,必须为1。biBitCount为2字节数据,表示每个像素所需要的深度,必须为1(2色图)、4(16色图)、8(256色图)、16(24位图)四种之一。bitCompression为2字节数据,表示图像压缩类型,必须为0(不压缩)、1(BI_RLE8压缩类型)、2(BI_RLE4压缩类型)之一。biSizeImage为2字节数据,表示位图的大小,以字

41、节为单位。biXpelsPerMeter为4字节数据,表示横向分辨率,单位为像素每米。biXpelsPerMeter为4字节数据,表示竖向分辨率,单位为像素每米。biClrUsed为2字节数据,表示位图实际使用的颜色表的颜色数。biClrImportant为2字节数据,表示位图显示过程中重要的颜色数。调色板又称为颜色表,由于现阶段操作系统都是直接使用24位色直接进行显示。所谓的24位色是指在图像显示的过程中,将决定其颜色的红绿蓝三原色(此为计算机三原色)由浅到深划分为256个等级,各占8位,颜色直接由3个分量的大小显示。调色板得出现主要是针对非24位图的颜色显示,通过存储其的颜色分量信息进入调

42、色板,就可以方便的调用其绘图时使用的颜色。其结构包含3个属性,分别代表颜色的3个分量。图2.4 调色板rgbRED为1字节数据,表示红色分量的大小,有效值为0-255。rgbGreen为1字节数据,表示绿色分量的大小,有效值为0-255。rgbBLUE为1字节数据,表示蓝色分量大小,有效值为0-255。数据部分起始于文件的第54字节,其存储方式为由左向右,自下而上。并且文件规定每一行的字节数必须为4的倍数。同时,1位、4位、8位图每像素占1字节,24位图占3字节。在读取图片时,在图像文件头中读取参数bfOffBits,获得数据的起始位置。然后在图像信息头中读取biWidth和biHeight,

43、计算出图像总像素,为其分配存储空间。同时再读取biBitCount,获取文件所占的位数,通过biWidth和biBitCount两个参数计算每行的字节数。最后在逐行的将图像中的像素信息读入到分配的内存中。3.3 处理图片图像拼接技术一直是图形学研究的热点问题,在此领域也有很多比较优秀和实用的算法。在处理图像时,将会选用现阶段研究比较全面和成熟的Harris角点匹配算法。在处理图像的过程中,我们首先要将一副24位图降低色彩度成为一副8位图。这是由于24位图所含的信息丰富,虽然可以使得我们获得更多感官上的真实感,同时也包含了许多并不需要的噪声和干扰信息。在8位图的情况下,有很多的重要特征将会更加明

44、显的显现出来。减色算法最重要的就是如何使得才减色过程中原图的色彩信息丧失最小。常见的减色算法有三种,分别是流行色算法、中位切分法、八叉树颜色量化算法。流行色算法,通过统计图像中出现最多的256种颜色,为这256种颜色建立调色板。算法具有简单易于理解,变换效果好的特点,但是对于一些对色觉刺激大但是出现频率低的色彩将被丢失。中位切分法,RGB三原色各对应三维空间中的三个分量,三个分量取值范围为0-255,0对应最暗,255对应最亮。这样就形成一个边长为256的彩色立方体,所有可能的颜色都对应于立方体内的点。将该立方体切分为256个小立方体,每个立方体中都包含相同数量的在图像中出现的颜色点。取每个小

45、立方体的中心点,则这些中心点构成256颜色。本次我们将使用八叉树量化算法。八叉树是一种特殊的数据结构,定义为:若不为空树的话,树中任一节点的子节点恰好只会有8个,或0个,也就是子节点不会有0与8以外的数目。初看之下,八叉树是一种不具有实际意义的数据结构。但是在三维空间中,被三条坐标轴分割的象限正好为8个,八叉树就正是为三维空间中的物体侦测和管理而产生的。由上文的中位切分法不难想到,24位图的RGB三分量可以对应于三维空间的坐标轴,八叉树就可以应用到减色算法中了。八叉树颜色量化算法,将图像中使用的RGB颜色值分布到层状的八叉树中。八叉树的深度可达9层,即根节点层加上分别表示8位的R、G、B值的每

46、一位的8层节点。较低的节点层对应于较不重要的RGB值的位(右边的位),因此,为了提高效率和节省内存,可以去掉最低部的2层,这样不会对结果有太大的影响。叶节点编码存储像素的个数和R、G、B颜色分量的值,而中间的节点组成了从最顶层到叶节点的路径。这是一种高效的存储方式,既可以存储图像中出现的颜色和其出现的次数,也不会浪费内存来存储图像中不出现的颜色。减色算法完成之后,图像拼接阶段我们将使用基于特征值的图像匹配算法。基于图像特征的方法进行图像配准, 具有如下优点: 1) 图像的特征点比图像的像素点要少很多, 因此大大减少了匹配过程的 计算量。2) 特征点的匹配度量值对位置的变化比较敏感, 可以大大提

47、高匹配的精确程度。3) 特征点的提取过程可以减少噪声的影响, 对灰度变化、图像形变以及光照不均等都有较好的适应能力。文中将使用Harris算子提取角点,然后对图像进行角点匹配,最后使用融合算法对其进行边缘处理。Harris算子的具体定义如下: Harris定义了任意方向上的自相关值为一组方形区域中图像灰度误差的总和: 它的泰勒展开式:M是2*2的对称矩阵:Ix,Iy分别为图像x,y方向的梯度值;w(x,y)为高斯滤波器。E可近似作为局部相互关函数,M描述了在这点上的形状。设1,,2是矩阵M的两个特征值,则1,,2可表示局部自相关函数的曲率。由于Harris算子各向同性,所以M保持旋转不变性。通过对矩阵M的两个特征值分析,可以得出以下三个结论:1) 如果两个特征值都比较小,则意味着

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号