(交通信息工程及控制专业论文)三维数据场的重建及显示技术研究.pdf_第1页
(交通信息工程及控制专业论文)三维数据场的重建及显示技术研究.pdf_第2页
(交通信息工程及控制专业论文)三维数据场的重建及显示技术研究.pdf_第3页
(交通信息工程及控制专业论文)三维数据场的重建及显示技术研究.pdf_第4页
(交通信息工程及控制专业论文)三维数据场的重建及显示技术研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(交通信息工程及控制专业论文)三维数据场的重建及显示技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要三维数据场的重建及显示技术研究摘要在三维数据场的可视化技术之中,基于二维图像序列的三维表面重建是其研究的重点之一。伴随着数字图像处理和计算机图形学技术的发展,客观物体的三维重建在医学影像分析、工业无损检测等许多方面得到广泛应用,有着极其重要的实用价值和研究意义。本文首先对三维重建应用的科学计算可视化理论进行了概括和综述,并分析了三维数据可视化处理的基本流程。进而介绍了一个基于d e l p h i7 的三维重建软件包的设计以及软件技术实现的相关基础内容。本文的主要工作如下:( 1 ) 对实现三维形体重建的m a r c h i n gc u b e s ( m c ) 算法进行了研究,讨论了m e 方法的基本原理和实现的技术要点。分析了实现三维重建所必需的图像预处理以及基于空间聚类的图像分割方法,对灰度形态学和图像聚类分割相结合的技术作了比较深入的研究,并通过这些技术的使用实现了形体的表面重建。( 2 ) 对基于二维轮廓线的重建算法进行了研究,对最短对角线法、最大体积法及同步轮廓线前进法进行了分析和对比。对提取二维轮廓线数据的相关技术进行了探讨及实验,并使用最短对角线法完成了计算机中三维图形显示与重建的源码设计。( 3 ) 结合d e l p h i 和o p e n g l 图形库开发了一个三维重建软件包,通过读取二维图像序列并进行相关的数字图像处理,根据需要使用m e 算法或者二维轮廓线重建的方法对三维重建进行了实现,并实现了对三维形体的显示控制。关键词:三维重建,灰度形态学,k 均值,模糊c 均值,轮廓提取,轮廓采样a b s t r a c tt h er e s e a r c ho fr e c o n s t r u c tio na n dvis u a llz tlo no f3 - dim e n s10 n a ld a t a s e ta b s t r a c ta m o n gt h et e c h n o l o g i e so f3 dd a t a s c tv i s u a l i z a t i o n , t h es u r f a c e sr e c o n s t r u c t i o nb 嬲e do ns e r i a l2 di m a g e si so n eo ft h ek e yt e c h n o l o g i e s w i t ht h ed e v e l o p m e n to ft h et e c h n o l o g yo fd i g _ i u ai m a g ep r o c e s s i n ga n dc o m p u t e rg r a p h i c s ,3 dr e c o n s t r u c t i o nf o ro b j e c t sh a sb e e ng r e a t l ya p p l i e di nt h ef i e l do fm e d i c a li m a g ea n a l y s i s ,i n d u s t r i a ll o s s l e s sd e t e c t i o n s oi th a sm o s ti m p o r t a n tp r a c t i c a la n ds e a r c h i n gv a l u e s t h et h e s i sf i r s t l yg e n e r a l i z e sa n dd e p i c t st h eb a s i ct h e o r yo f v i s u a l i z a t i o ni ns c i e n t i f i cc o m p u t i n g ,a n da n y s e st h er o u t i n eo f3 dd a t a s e t sv i s u a l i z a t i o n t h e nw ei n t r o d u c ea3 dr e c o n s t r u c t i o ns o r w a r ep a c k a g ed e s i g nb a s e do nd e l p h i7a n dt h ec o r r e l a t i v ek n o w l e d g ea b o u tt h es o r w a r e si m p l e m e n t a t i o n t h em a i nw o r k si nt h i sp a p e ra r ef o l l o w i n g s :( 1 ) f i r s t l yi ti n v e s t i g a t e st h em a r c h i n gc u b e sa l g o r i t h mt oa c h i e v i n g3 dr e c o n s t r u c t i o n , d i s c u s s e st h eb a s i ct h e o r ya n dt h ek e yp o i n t si ni m p l e m e n t a t i o n ,t h e na n a l y s e st h en e c e s s a r ym e t h o d so fi m a g ep r e p r o c e s s i n ga n di m a g es e g m e n t a t i o nb a s e do ns p a t i a lc l u s t e r i n g ,a n df u l f i l l sr e c o n s t r u c t i o no f o b j e c t su s i n gt h e s et e c h n o l o g i e s ( 2 ) t h er e c o n s t r u c t i o na l g o r i t h m sb a s e do n2 dc o n t o u r si sr e s e a r c h e d t h em e t h o d so f t h en e a r e s td i a g o n a l t h em o s tc u b a g ea n dt h es y n c h r o n o u sc o n n e c t i n ga r ea n a l y s e da n dc o m p a r e d t e c h n i q u e sa b o u t2 dc o n t o u r se x t r a c t i o na r es t u d i e da n di m p l e m e n t e d ,r e c o n s t r u c t i o nb e t w e e nc o n t o u r sb yu s i n gt h en e a r e s td i a g o n a lm e t h o di sa c h i e v e d ( 3 ) as o f t w a r ep a c k a g ei sd e v e l o p e db yc o m b i n i n gd e l p h ia n do p e n g ll i b r a r y a f t e rr e a d i n g2 di m a g e sa n dn e c e s s a r yi m a g ep r o c e s s i n g , o b j e c t s 3 de f f e c t sa l eo b t a i n e db yu s i n gm a r c h i n gc u b e sa l g o r i t h mo ra l g o r i t h m sb a s e do n2 dc o n t o u r sa c c 幽gt or e q u i r e m e n t s k e yw o r d s :3 dr e c o n s t r u c t i o n , g r a ym o r p h o l o g y , k - m e a n s ,f u z z yc - m e a n s ,c o n t o u re x t r a c t i o n , c o n t o u rs a m p l i n g独创性声明本人郑重声明:所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表和撰写的研究成果,也不包含为获得华东交通大学或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。本人签名渣复盎日期地:盎:!关于论文使用授权的说明本人完全了解华东交通大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅。学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。保密的论文在解密后遵守此规定,本论文无保密内容本人签名盏遂鑫导师签第一章绪论第一章绪论1 1 可视化技术综述计算机的广泛使用使得人类社会进入了信息时代,它给人类社会提供了全新的科学计算和数据获取手段。由于长期以来受计算机软硬件技术水平的制约,科学计算的数据不能以图形方式显示,缺乏交互处理手段,并且大量的输出数据只能通过人工方式处理人工处理数据十分冗繁而且耗时,不仅不能及时地得到结果,反而有可能丢失大量信息面对堆积如山的数据,如何及时解读以及获取有用的信息成为人类面临的巨大挑战。因而科学计算结果的后处理已经成为提高科学计算质量和效率的主要问题之一。随着近年来计算机软硬件性能的不断提高和计算机图形学的蓬勃发展,使得运用计算机技术形象直观地显示科学计算结果和进一步交互处理成为可能。科学计算可视化( v i s u a l i z a t i o ni ns c i e n t i f i cc o m p u t i n g ) 是发达国家2 0 世纪8 0 年代发展起来的计算机科学新领域,它涉及到计算机图形学、数字图像处理、计算机辅助设计、人机交互技术等多个领域,在自然科学和工程技术中有着广阔的应用前景,也越来越受到科技工作者的重视。对客观物体在计算机中进行真实的三维重建,一直以来都是计算机视觉以及计算机图形学所研究的热门领域之一如何逼真而准确地再现真实的三维形体,吸引了很多研究人员的关注。科学计算可视化指的是运用计算机图形学和图像处理技术,将科学计算过程中及计算结果的数据转换为图形及图像在屏幕上显示出来并进行交互处理的理论、方法和技术。科学计算可视化将图形生成技术、图像处理技术和人机交互技术结合在一起,其主要功能是从复杂的多维数据中产生图形;也可以分析和理解送入计算机的图像数据。由于科学计算可视化可以将计算结果用图形或者图像形象而直观地显示出来,因而许多抽象的、难以理解的原理和规律变得容易理解了,许多冗繁而枯燥的数据变得生动有趣了实际上,随着相关技术的发展,科学计算可视化的含义已经大大扩展。它不仅包括科学计算数据的可视化,而且包括工程计算数据的可视化,如有限元分析结果等。也包括测量数据的可视化,如用于医疗领域的计算机断层扫描( c t ) 数据及核磁共振( m p d ) 数据的可视化,就是最为活跃的研究领域之一科学计算可视化所涉及的主要技术问题有:标量、矢量和张量场的显示;数据场和流场的动态显示;多参数数据场的显示;模拟和计算过程的交互控制和引导;面向图形的程序设计环境;工作站与超级计算机联网使用;用于图形生成和图像处理的并行算法;用于图形生成和图像处理的特殊硬件结构;传输图像的高带宽网络和协议;虚拟现实技术在科学计算可视化中的应用等。在这些问题中,三维空间数据场的可视化是科学计算可视化技术的核第一章绪论心问题,研究的重点放在如何真实、快速地显示二维或三维数据场。1 2 三维数据场重建的研究意义及发展现状1 2 1 三维数据场重建的研究意义m基于断层图像序列的三维重建不仅在医学领域具有重要价值,在工业无损探伤、天体结构的观察及其他更广泛的领域也有着极其重要的实用价值和研究意义。随着第一台医用c t 机的问世及应用,人们可以得到人体及其内部器官等的二维数字断层图像序列。这些医学成像的临床应用,使得医学诊断和治疗技术取得了很大的发展。围绕如何将二维断层图像序列转变成为具有直观立体效果的三维空间图像,发展起来了一系列基于断层图像序列的以可视化为最终目的的三维重建理论,并且得到大量研究与广泛应用。与三维重建理论相比,数字图像处理是- - i j 较为成熟的学科。数字图像处理技术为断层图像数据的三维重建提供了重要支持,所涉及到图像处理技术有图像增强、特征提取以及图像分割等,目前这些技术主要集中在医学应用领域。三维重建广泛应用在医学、虚拟现实、计算机动画、显微摄影学、三维测量、物理学、化学、地质学、工业检测、计算流体力学、有限元分析等方面。因此,开展这方面的研究具有重要意义。在医学上,传统的影像技术知识获得人体某一断层的数据,然后通过胶片进行诊断或者通过显示屏幕进行观察。由于所观察到的是二维图像且只能以固定方式观察,因此得到的诊断结果带有医生的主观经验判断,而计算机三维重建技术的应用可以改变这种状况。通过对二维断层图像序列进行三维重建,可以从二维图像中获取三维的结构信息,从而为医生提供更逼真的显示。医学三维重建技术作为有力的辅助手段能够弥补影像设备在成像上的不足,便于医生从多角度、多层次进行观察和分析,通过人机交互能够使医生有效地参与数据的处理分析。因此三维重建在辅助医生诊断、手术仿真,引导治疗方面发挥极其重要的作用。在逆向工程中,依据测量数据生成物体的几何模型是最关键也是最困难的工作。如何自动并快速实现从测量数据到c 模型的转换是人们研究的热点。工业c t 在无损状态下能获得被检断面的二维灰度图像,从图像上可以直观地看到目标细节的位置、形状、大小。伴随着2 0 世纪8 0 年代工业c t 出现以及其测量精度逐渐提高,基于断层数据的三维重建成为国内外的研究热点,并成为工业界逆向工程的一个新的研究方向,研究三维重建技术对逆向工程有着极其深远的意义。1 2 2 三维数据场重建的发展现状嘲近年来,在美国、德国等发达国家的研究机构中,可视化技术的研究工作及应用实验十分活跃,涌现出许多理论成果和应用成果。在三维可视化实现中,有两类不同的算法:表面绘制算法和直接体绘制算法。2第一章绪论面绘制最大的特点是,需要先对二维数据场进行三维重建,生成体数据等值面的曲面表示,再用光照模型计算出绘制图像。常用的三维重建方法有:m a r c h i n gc u b e s方法,m a r c h i n gt e t r a h e d r a l 方法等。m a r c h i n gc u b e s 方法提出一种精确定义体素及其体素内等值面的生成方法,随后又有很多人在它的基础上进行研究,如今已经成为最流行的三维重建方法,在许多商用软件中也有应用。由一序列二维轮廓线重构三维形体也有着广泛的应用,在地形数据可视化中,输入一系列的二维等高线就可重构出具有光照效果的三维地形图像等。体绘制则放弃了传统方法中体由面构造这一约束,采用体绘制光照模型直接从三维体数据中绘制各类物理量的分布情况。等值面等体数据的几何面表示方法,是研究人员为了适应图形显示,人为提出的一种体数据表示形式。体绘制的根本点在于放弃这一做法,将三维体数据中的体素看成一个半透明物质,并赋予其一定的颜色和阻光度,由光线穿过整个数据场,进行颜色合成,褥到最终结果。目前有三类直接体绘制方法:光线投射法、投影成像法和频域变换法。直接体绘制计算量大,耗费时间长,不易实时处理。发达国家在三维重建方面比较著名的研究成果如下:( 1 ) 可见人体:将一系列的二维c t 图像或m r 图像重构成三维的人体结构,使得人类认识自身的内部结构成为可能。1 9 9 1 年科罗拉多大学医学院建立起一个男人和一个女人全部解剖结构的数据库,从头到脚做了c t 扫描,片间距离为l m m 。为研究人体内部不同结构的三维重构提供了庞大的数据。( 2 ) 人类胚胎的可视化:它可对一个7 周的人类胚胎实现交互的三维显示。( 3 ) 狗心脏c t 数据的动态显示:显示一个狗心脏跳动周期的动态图像,十分形象直观。中国首例数字化可视人体2 0 0 2 年1 0 月在重庆第三军医大学完成。这套“中国可视人”数据集的诞生,为我国乃至整个东方人提供了一部系统、完整和细致的人体结构基本数据和图像资料与美、韩相比,该项研究成果为整个标本的连续断面,无节段性数据缺损,断面图像分辨率达6 3 0 万像素,断面厚度达到0 1 毫米,在设备的先进性,数据的完整性、代表性和精确性上都处于国际领先水平。该项研究成果已经在有关学术期刊以研究论著的形式正式发表,并同时在国际互联网站发布,使我国正式成为第3 个拥有本国可视化人体数据集的国家。随后在2 0 0 3 年1 月1 9 至2 2 日,首届中、美、韩可视化人体国际学术研讨会在第三军医大学举行。来自美国、韩国、中国香港、中国澳门及中国内地的数字化可视人体研究领域的科学家1 4 0 多人参加了会议中、美、韩三国数字化可视人体研究课题组首席科学家v m s p i t z e r 教授、郑民锡博士和张绍祥教授于2 0 0 3 年1 月2 0 日在重庆签署了中、美、韩三国数字化可视人体合作研究协议。此次会议,对于推动我国数字化可视人体研究和确立我国在此研究领域的国际地位具有重要的战略意义在国外,已经有了可以显示三维医学图像的商品化系统:有的是一个独立系统,第一章绪论如加拿大的a l l e g r o 系统,它可以根据用户需要,与不同厂家的c t 扫描设备或核磁共振仪相连接:有的则是这类医疗设备的一个组成部分,如以色列爱尔新特公司( e l s c m tl t d ) 、美国通用电器公司( g e ) 出产的螺旋c t 扫描设备可以沿x ,弘z 三个方向逐帧显示输入的图像,可以用不同方法构造三维形体,可以对三维图像由外向内按层剥离或作任意位置的剖切以观看内部结构,也可以做平移、旋转、放大、缩小操作。比较有名的商业软件还有美国的3 d - d o c t o r ,在医疗诊断中应用比较广泛。1 3 三维重建系统的构成尽管三维空间数据有多种数据类型,但可视化的基本流程却大体相同。因此,根据三维空间数据可视化处理的几个主要步骤,基于二维断层图像序列的三维重建系统的总体框架可由图1 - 1 表示:图1 - 1 三维数据场可视化的基本流程f i 9 1 - 1f l d wc h a r t3 - d i m e n s i o n a ld a t 鹊e t s u a l i z 撕0 n( 1 ) 数据获取原始数据可由计算机数值模拟或者测量仪器产生,通常二维断层图像序列可以是由c t 、i c t 、x - c t 、m r i 等设备产生的。( 2 ) 数据的预处理一般通过c t 、m r i 等设备得到的图像,由于设备以及图像自身的原因,经常会有一些噪声。这些噪声点会对图像重构的真实性和整体性造成影响。因此,在进行三维重建之前,有必要对原始扫描图片进行预处理。针对所处理的图像的特点,图像预处理的目标是既要去除噪声,又要充分保留原始图像中的整体信息。( 3 ) 数据分析原始数据中包含许多信息,而人们感兴趣的只是其中的一部分数据。因此,在这一步里,要对有用的信息进行提取,把无用的信息过滤掉,从而为下一步的三维显示做好必要的准备( 4 ) 三维重建与显示通过三维重建算法,将经过处理的原始数据转化成可供绘制的几何图素和属性,即决定在最后的三维显示中应该看到什么,又如何将其表现出来。然后利用计算机图形学中的基本技术,或者借助已有的图形软件包及图形硬件将这些几何图素和属性转化成可在计算机上显示的图像。( 5 ) 交互处理主要是人机交互,即图像变换和显示,包括图像的几何变换、图像压缩、颜色量4第一章绪论化、图像格式转换以及图像的动态输出等。1 4 论文主要内容及章节安排课题开发了一个基于d e l p h i7 的三维重建系统,能够对所读取的二维断层图像序列进行多种数字图像预处理及重建,并对重建后的三维形体进行显示和多角度观察。研究中主要使用m a r c h i n gc u b e s 和基于二维轮廓线的表面重建这两种方法对这些图像序列进行三维重建,并实现了其旋转、剖切等三维显示效果。本论文的章节安排如下:第一章这章系统地介绍了基于可视化技术的计算机三维重建的发展现状和研究意义,以及实现的基本流程。第二章这章对一个基于d e l p h i7 的三维重建系统v i s u a l 3 d 做了简要说明,对实现三维重建所需的o p e n g l 技术及其计算机图形学相关知识进行了讨论。第三章这章主要介绍了基于m a r c h i n gc u b e s 方法三维重建的基本原理及其实现,并讨论了与此相关的图像预处理和图像分割技术第四章这章主要介绍基于二维轮廓线的三维重建的基本原理及其实现,分析了与提取轮廓有关的图像处理技术第五章这章对论文所研究的内容进行了回顾,并对后续研究工作和技术方法进行了展望。第二章三维重建系统的技术实现第二章三维重建系统的技术实现2 1三维重建系统及软件开发环境介绍d e l p h i 是建立在v c l 基础之上基于面向对象编程的先进开发环境。面向对象的程序设计( o o p ) 是结构化语言的自然延伸。o o p 的先进编程方法,会产生一个清晰而又容易扩展及维护的程序,摆脱了传统过程模式的束缚。本系统采用d e l p h i 这个强大的面向对象的快速开发环境进行编程的。在编程中利用d e l p h i7 中提供的组件和其自动生成的类、属性、方法等,十分方便地实现了各功能模块的程序设计。图2 - 1 三维重建v i s u a l 3 d 软件界面f “皿- 1i n t e r f a c eo f 3 dr e c o n s t r u c t i o ns o f t w a r e v 1 s i m l 3 d 在d e l p h i7 中三维重建系统的项目名为v i s u a l 3 d d p r ,三维重建模块是整个软件的重要组成部分。它由主模块控制,从切片处理模块获取重构所需的数据源,该模块将重构出虚拟的三维图形,在此基础上可以对重构出的三维实体进行显示和演示。生成的三维重建系统v i s u a l 3 d 是一个多文档应用程序,软件的界面如图2 一l 所示根据图像数据处理流程,我们可以将系统划分为五大模块( 如图2 2 ) :主模块、图像读取模块、图像观察模块、图像处理模块、三维重建模块。其中主模块用于协调各子模块的工作,存储运行期间的全局数据;图像读取模块用于读取断层图像序列,且可以将医学图像格式转换成b i t m a p 格式以进行存储;图像观察模块用于观察断层图像序列,包括图像序列连续浏览以及三视图方式观察图像序列;图像处理模块用于6第二章三维重建系统的技术实现对图像进行数字图像处理,生成适合重建的图像序列;三维重建模块用于对处理后的断层序列图像进行三维重建。图2 - 2v u m a l 3 d 的软件结构f i 9 2 - 2s o f t w a r es 订u c t u r eo f t h ev u m a l 3 d在数字图像处理的基本技术中,点运算是非常重要的一种。d e l p h i7 在数字图像处理中的点运算主要有两种方法,一种是直接访问画布上某一点的p i x e l s 方法,但处理速度比较慢,另一种方法是使用每行像素值内存直接访问的s c a n l i n e 方法,方便而又快捷 3 1 。为区分两种方法,我们称前者的模式为点像素处理模式,而后者的模式为像素内存操作模式。其主要属性定义如下:p r o p e r t ys c a n l i n e r o w :i n t e g e r :p o i n t e r ;其中r o w 为位图图像的行号,返回的是一个指向位图像素数据的指针,可以获取某一行所有像素点的颜色值( 即各点像素的r 、g 、b 分量值) 。再结合对p i x e l f o r m a t属性的定义,可以实现对8 、1 6 、2 4 、3 2 位位图的操作,其处理速度大约是访问p i x e l s属性的点像素处理方法的5 0 倍。因此,d e l p h i7 是在图像处理方面的功能非常强大,处理速度快且开发效率高,与v c 等开发工具相比只需要很少的代码就能实现很复杂的功能。与其他高级编程语言或者软件开发工具一样,d e l p h i7 也提供了开发三维图形图像程序的与o p e n g l 的接口。2 。20 p e n g l 技术介绍嘲2 2 10 p e n g l 简介o p e n g l 是o p e ng r a p h i cl i b 的缩写,是一套三维图形处理库,也是该领域的工业标准。计算机三维图形是将用数据描述的三维空间通过计算转换成二维图像并显示或打印出来,o p e n g l 就是支持这种转换的程序库。o p e n g l 被设计成独立于硬件设备、窗口系统和操作系统,且适用于多种操作系统,实际上是一个图形与硬件的接口。o p e n g l 函数有五类,另外还有结构体:7第二章三维重建系统的技术实现( 1 ) o p e n g l 核心函数,这些函数以酉开头。这些函数是基本的,可以运行于任何o p e n g l 平台。可用这些函数建立各种各样的形体,产生光照效果,进行反走样以及纹理映射,进行投影变换等。由于这些核心函数有多种形式并能够接受不同类型的参数,所以这些函数可以派生出3 0 0 多个函数。( 2 ) o p e n g l 实用库函数,这些函数p a g l u 开头。这些函数事实上是基于o p e n g l核心函数,提供对辅助函数特性的支持,并且执行了核心的o p e n g l 交互,因而是比核心函数更高一层的函数,也更具有通用性。( 3 ) o p e n g l 辅助库函数,这些函数以a u x 开头。这是一类特殊的函数,并不保证在任何平台的使用。这些函数简化了像素格式的设置,集成了窗口管理系统的生成、控制以及背景过程,简化了可定制的输入事件及交互手段,可绘制常见的典型的三维物体。( 4 ) w i n d o w s 专用库函数,这些函数b a w g l 开头。这些函数是用于连接o p e n g l和w i n d o w s 操作系统,用于管理绘制描述表及其显示列表、扩展功能,管理字体位图。( 5 ) w i n 3 2a p i 函数,这些函数前面没有专门的前缀,用于处理像素格式及缓冲。2 2 20 p e n g l 的功能o p e n g l 能够对整个三维模型进行渲染着色,从而绘制出与客观世界十分类似的三维景象。另外o p e n g l 还可以进行三维交互、动作模拟等。具体的功能如下:( 1 ) 模型绘制o p e n g l 通常用模型的多边形的顶点来描述三维模型。因此o p e n g l 不仅提供了能够绘制点、线和多边形等基本形体的函数,还提供了复杂三维曲线、曲面和三维形体的函数。应用这些基本的函数,可以构造出几乎所有的三维模型。( 2 ) 模型观察在建立了三维景物模型后,就需要用o p e n g l 描述如何观察所建立的三维模型。观察三维模型是通过一系列的坐标变换进行的。模型的坐标变换在使观察者能够在视点位置观察与视点相适应的三维模型景观。在整个三维模型的观察过程中,投影交换的类型决定观察三维模型的观察方式,不同的投影变换得到的三维模型的景象也是不同的。最后的视窗变换则对模型的景象进行裁剪缩放,即决定整个三维模型在屏幕上的图象。( 3 ) 颜色模式的指定o p e n g l 可以指定二种颜色模式,即r g b a 模式和颜色表模式。在r g b a 模式中,颜色直接由r g b 值来指定;在颜色表模式中,颜色值则由颜色表中的一个颜色索引值来指定。此外还可以选择平面着色和光滑着色( 即g o u r a n ds h a d i g ) 二种着色方式进行着色。( 4 ) 光照应用用o p e n g l 绘制的三维模型必须加上光照才能更加与客观物体相似。o p e n g l 提8第二章三维重建系统的技术实现供了管理四种光( 辐射光、环境光、镜面光和漫反射光) 的方法,另外还可以指定模型表面的反射特性。( 5 ) 图像效果增强o p e n g l 提供了一系列的增强三维景观的图像效果的函数,这些函数通过反走样、混合和雾化来增强图像的效果。反走样用于改善图像中线段图形的锯齿而更平滑,混合用于处理模型的半透明效果,雾使得影像从视点到远处逐渐褪色,更接近于真实。( 6 ) 位图和图像处理o p e n g l 还提供了专门对位图和图像进行操作的函数。( 7 ) 纹理映射为了更加逼真地表现三维景物,o p e n g l 提供了纹理映射的功能o p e n g l 提供的一系列纹理映射函数可以十分方便地把真实图像贴到景物的多边形上,从而可以在视窗内绘制逼真的三维景观( 8 ) 实时动画为了获得平滑的动画效果,需要先在内存中生成下一幅图像,然后把已经生成的图象从内存拷贝到屏幕上,这就是o p e n g l 的双存技术( d o u b l eb u f f e r ) 。o p e n g l 提供了双缓存技术的一系列函数( 9 ) 交互技术,目前大多数图形应用软件需要具备人机交互功能,o p e n g l 提供了方便的三维图形人机交互接口,用户可以选择修改三维景观中的物体。图2 - 3 用o p e n g l 绘制重建的图像( c t 扫描箱子中物体)f i 9 2 - 3r e n d e d n gr ( w , o t x s m l c t e do b j e c t su s i n go p e n ( 3 l9第二章三维重建系统的技术实现2 2 3o p e n g l 在v i n d o w s 环境下的工作机制在w i n d o w s 环境下进行o p e n g l - - 维图形编程与一般的w i n d o w s 图形编程有着很大的不同。w 谊d o w s 环境下o p e n g l 的绘图功能是通过显示驱动程序与图形显示硬件交流,由显示驱动程序直接控制图形显示硬件。其区别主要是:w l n d o w s 是通过g d i( 图形设备接口) 绘图,o p e n g l 是通过绘制描绘表( r e n d e r i n g c o n t e x t s ) 绘图,而b o p e n g l 使用特殊的像素格式。g d i 是w i n d o w s 中二维图形的绘图接口,g d i 绘图内容包括点、线、面以及一系列绘图笔刷等。这些绘图内容可以输出到屏幕内存或者打印机等设备。这种方式都是在w i n d o w s 的设备描述表( d e v i c ec o n t e x t s ) 中进行的。在所有的w i n d o w s 图形程序中都需要申请一个d c 并在d c 中完成各种绘图操作。绘制描述表与设备描述表是连接在一起起作用的,在o p e n g l 应用程序中r c 和d c 的工作方式是相同的。对于g d i ,d c 存储了各种图形绘图操作的状态变量,r c 也是如此。o p e n g l 是- - 种状态机制,r c 中就存储y o p e n o l 的一系列状态命令。像素格式决定了像素颜色的设置及其与d c 和r c 相关联的辅助缓冲区像素格式的设置,其内容是o p e n g l 调用与w i n d o w s 绘制操作之间的中间转换设置因此要在w j n d 栅境下实现o p e n g l 的函数功能,就必须先设置像素格式。与在v c 等工具类似,宅e d e l p h i 下编写o p e n o l 程序的步骤为:( 1 ) 创建设备描述表d c 定义设备描述表d c :h d c ;通过a p i 函数获得d c := g e t d c ( h a n d l e ,d c ) ( 2 ) 设置d c 的像素格式属性( p e l f o r m a t d e s c r i p t o r ) 。一个指定的像素格式必须通过p e l f o 舭i d e s c r i p t o r 结构来描述,通过填充该结构来决定o p e n o l 作图的物理设备的属性。定义一i p i x e l f o r m a t d e s c r i p t o r 结构的变量p f d ,并按如下设置:f m c m 哪f d ,s i z e o f ( t p i x e l f o r m a t d e s c r i p t o r ) , o ) ,o,所有数据清零w i l h p f d d o b e g i nn s i z e := s i z e o f ( t p i x e l f o r m a t d e s c r i p t o r ) ;n v e r s i o n _ l ;d w f l a g s := p f d _ d r a wt ow i n d o wo rp f d s u p p o r to p e n g l0 1 p f dd o u b l e b u f f e r ;i p i x e l t y p e := p f dt y p e _ r o b a ;c c o l o r b i t s := 1 6 ;c d c p t h b i t s := 3 2 ;臌1 3 2 位深度缓存i l a y e r t y p e := p f dm a 矾p l a n e ;e n d ;c h o o s e p i x e l f o r m a t - c h o o s e p i x e l f o r m a t ( d e v c , p f d ) ;s e t p i x e l f o r m a t ( d e v c ,c h o s e n p i x e l f o r m a t , p f d ) ;1 0第二章三维重建系统的技术实现( 3 ) 创建绘制描述表r c ,并与上面建立的d c 建立联系。这时,o p e n g l 的函数就可以通过r c 对应的d c 画到相应的显示设备上。定义绘制描述表,r c :h g l r c ;创建绘制描述表,r c := w g l c r e a t e c o n t e x t ( d c ) ;与d c 建立起联系,w g l m a k e c u r r e n t ( d c 。r e ) 。( 4 ) 调用o p e n g l 作图由于线程与r c 一一对应,o p e n g l 函数的参数中都不指明本线程的r c 的句柄( h a n d l e ) 。( 5 ) 在作图完毕之后,也就是在程序结束之前要释放所占用的资源。解除d c 和r c 的联系,w g l m a k e c u r r e n t ( o ,0 ) ;删除绘制描述表,w g l d e l e t e c o n t e x t ( r c ) ;释放绘制描述表,r e l e a s e d c ( h a n d l e ,d c ) 。2 3 图形变换基础阱删图形变换是计算机图形学的基础内容之一。通过图形变换,可由简单图形生成复杂图形,并用二维显示图形表示三维形体图形变换的主要内容是窗口视图变换,二维、三维图形的平移、旋转、缩放等几何变换以及投影、透视变换等。2 3 1 图形的几何变换三维图形的几何变换矩阵可用五。=来表示。la t lq 2 q 3l从变换功能上互。可分为四个子矩阵,其中la 2 。口。a 2 3i 产生比例、旋转等变换;ka 3 2a 3 3 j【a 4 。】产生平移变换; 锄屯】r 产生投影变换; 】产生整体比例变换。假设( x , y ,z ) 表示三维空间坐标中一点,o ,厂,) 为变换后的坐标。( 1 ) 平移变换设( x ,y ,z ) 分别在五y ,z 轴上平移,l ,z ,则变换可用式( 2 1 ) 表示: ,1 = 卜yz1 】loo1oo互弓000010正1= 石+ 互y + 刁z + 互1 ( 2 1 )在o p e n g l 中平移变换可用# t r a n s l a t e 函数表示,函数原型如下:如幻和和钆衄咖缸q 如吩q第二章三维重建系统的技术实现;l r0 1 1 1o o0 1( 2 2 )在o p e n g l 中比例变换可用g l s c a l e 函数表示,函数原型如下:v o i dg l s c a l e f d ( t y p ex , t y p e3 , , t y p ez ) ;( 3 ) 旋转变换在右手坐标系下相对坐标轴旋转口角的变换公式是:a 绕x 轴旋转f 1oo0 1 ,y 7 = zyz 】l :一c 。o 遗s o 口s i n 。弓:ic z s ,【ooo1 jb 绕y 轴旋转 ,z , _ 工yz ,】f 。:r c 0 810p ,1 = 卜y 刈r c o s o p 丐s i n o 口蚓00 1r10001i在o p e n g l 中旋转变换可用g l r o t a t e 函数表示,函数原型如下:v o i dg l r o t a t e f d ( t y p ea n g l e ,t y p ex , t y p e y , t y p ez ) ;( 2 - 4 )( 2 5 )2 3 2 图形的投影变换嗍投影变换就是把三维物体变为二维图形表示的过程。而在o p e n g l 中只提供了两种投影方式,一种是正投影,另一种是透视投影。0oo1z、,oo 是&一oy、,o o 一ox、- ,墨oo o_。lj i们叫川u:;。础。第二章三维重建系统的技术实现( 1 ) 正投影( o r t h o g r a p h i cp r o j e c t i o n )对象描述沿与投影平面法向量平行的方向到投影平面上的变换为正投影。正投影生成一个平行投影变换,其中投影线与投影平面垂直。正投影的观察体是一个矩形的平行管道,它在所有侧面都是矩形( 如图2 - 4 ) 。因此正投影的最大特点就是无论物体距离视点多远,投影后的物体大小和尺寸不变图2 4 正投影的观察体f i 豇4f r u s t u mo f o r t h o g r a p h i cp r o j e c t i o n在o p e n g l 中透视投影可用g l o r t h o 函数来实现,函数原型如下:v o i dg l o r t h o ( g l d o u b l el e 屯g l d o u b l e 啦蚍g l d o u b l eb o t t o m , g l d o u b l et o p , g l d o u b l en 髓bo l d o u b l e 蠡r ) ;( 2 ) 透视投影( p e r s p e c t i v ep r o j e c t i o n )当一个场景使用透视映射投影到观察平面上时,平行于观察平面的线条投影后仍然平行。但是任何与观察平面不平行的平行线组投影后成为一组会聚线条一组投影平行线会聚的点成为灭点( v a n i s h i n gp o i n t ) 透视投影符合人们心理习惯,即离视点近的物体大,离视点远的物体小,远到极点即为消失,成为灭点。远平面距离,图2 - 5 透视投影的观察体f i 贮- 5f r u s t u mo f p e r s p e c t i v ep r o j e c l i o a第二章三维重建系统的技术实现通过在观察平面上指定一个矩形裁剪窗口可得到一个观察体。观察体的底面、顶面和侧面是通过窗口边线相交于投影参考点的平面,这样就形成了一个顶点在投影中心的无限矩形棱锥。在该棱锥体外的所有对象都将被裁剪( 如图2 5 ) 。透视投影的观察体常称为视觉棱锥体。在o p e n g l 中透视投影可用g l u p e r s p e e t i v e 函数来实现,函数原型如下:v o i dg l u p e r s p e c t i v e ( g l d o u b l ef o v y , g l d o u b l ea s p e e t , g l d o u b l ez n e a r , o l d o u b l ez f a r ) ;在d e l p h i 中的o n p a i n t 事件中调用的视口恢复函数的程序段如下:p r o c e d u r er e s h a p e ( w , h :g l s i z e i ) ;b e g i ni f ( h - - 0 ) t h e nh := l :g l v i e w p o a ( o ,o ,咄) ;g l m a t r i x m o d e ( g l _ p r o j e c t o n ) ;g l l o a d l d e n t i t y o ;g l u p e r s p e e t i v e ( 3 5 0 ,w h a d j u s t + w h , 0 0 5 ,3 0 0 o ) ;,此处为透视投影设置g l m a t r i x m o d e ( g l _ m o d e l v i e v 0 ;g l l o a d l d e n t i t y 0 ;e n d ;图2 - 6 观察体的显示效果f i 9 2 - 6r e s u l to f 3 do b j e c ti nf r u s t u mo f p e r s p e c t i v ep r o j e c t i o n为了显示不同大小的三维形体的效果达到统一,在初始化过程中,我们把所有顶点的坐标转换到一个一l x :g l , - l a y - l ,一l z s l 的正方体形的三维空间里,其观察体的显示效果如图2 - 6 所示其观察体按上述正方体空间归一化的程序段如下:1 4第二章三维重建系统的技术实现f o rc y := ot og r i d s i z e yd of o rc z := 町t og r i d s i z e x zd of o r o x := 0 t o g r i d s i z e x zd o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论