您现在正在浏览:首页 > 职教文章 > 职教论文 > 三维可视化软件AMIRA的应用研究

三维可视化软件AMIRA的应用研究

日期: 2012/12/3 浏览: 1 来源: 学海网收集整理 作者: 学海网

三维可视化软件AMIRA的应用研究

杨小波 皮文骏 李进新 施旭之

(武汉理工大学自动化学院,武汉,430070,中国)

摘要 本文首先介绍了图像处理系统的构成、图像处理的主要内容和应用。在此基础上,利用Visual C++6.0设计出一套图象处理应用示例演示程序。对AMIRA软件进行了全面的了解和研究,着重分析了它的扩展模块AmiraDev开发平台。在熟悉软件本身操作的前提下,用3Dmax设计了原始的3D图像模型,然后用AMIRA和photoshop7.0对此模型实现三维重构。在AmiraDev开发平台下,利用Development wizard向导实现了用户编程环境,用C++自定义了新的图像格式,对其实现了基本的读/写和存储操作,这样用户就能应付将来会出现的新的数据格式。

关键字:AMIRA,VC++,AmiraDev,调色板,二次开发

ABSTRACT First of all this article introduces digital image's basic conception , video processing system's constitute ,image processing's primary coverage and application .Then ,Utilize Visual C + + 6.0 we design out an image processing image processing application which give a demonstration Demo Procedure .The paper traverses triaxiality visualization soft ware AMIRA ' s user manual ,explanation understand AMIRA' s software system ' s mightiness function ,emphasize assay its spread module AmiraDev exploitation Platform .Being familial with soft ware operations , we reviewed that utilize AMIRA and photoshop 7.0 reorganization 3D image concretion Step .Utilize AmiraDev exploitation platform design understand recent use C+ +Written's data processing model and recent readable/written selector plus routine .

Keywords: AMIRA,VC++,AmiraDev,color palette,redevelopment

1 绪论

1.1 课题背景

可视化技术的出现有着深刻的历史背景,这就是社会的巨大需要和技术水平的进步。可视化技术由来一久,早在20世纪初期,人们已经将图表和统计等原始的可视化技术应用于科学数据分析当中。随着人类社会的飞速发展,人们在科学研究和生产实践中,越来越多地获取大量科学数据。计算机的诞生和普及应用,使得人类社会进入了一个信息时代,使人类社会进入了一个“数据的海洋”,而人们进行科学研究的目的不仅仅是为了获取数据,而是要通过分析数据去探索自然规律。早期,科学计算只能以批处理方式进行,不能进行交互处理,对于大量的输出数据,只能用人工方式处理,或者用绘图仪输出二维图形,这种处理方式不仅效率低下,而且丢失了大量信息。随着计算机软硬件性能的不断提高和计算机图形学的蓬勃发展,来自超级计算机、卫星遥感、CT、天气预报以及地震勘测等领域的数据越来越大,由于缺乏有效的处理和观察理解手段,促使人们将这一新技术应用于科学数据的可视化中。

1.2课题研究的目的和意义

从发展历史看,数字图像最早出现在图像处理,遥感图像的处理和生物、医学图像的分析是图像处理最重要的应用领域,他们也是图像处理赖以发展的出发点。近年来,数字图像应用的扩大则归功于图形用户界面的出现和多媒体技术的发展

AMIRA可视化的研究主要分为两大部分,可视化工具的研究和可视化应用的研究。重点是可视化过程的组成内容,其中包括:

数据预处理:可视化的数据来源十分丰富,数据格式也是多种多样的,这一步将各种各样的数据转换为可视化工具可以处理的标准格式。

映射:映射就是运用各种各样的可视化方法对数据进行处理,提取出数据中包含的各种科学现象、规律等,将这些抽象的、甚至是不可见的规律和现象用一些可见的物体点、线、面等表示出来。

绘制:将映射的点、线、面等用各种方法绘制到屏幕上,在绘制中有些物体可能是透明的,有些物体可能被其他物体遮挡。

显示:显示模块除了完成可视信息的显示,还要接受用户的反馈输入信息,其研究的重点是三维可视化人机交互技术。

AMIRA可视化技术的意义重大,具体来讲有以下几点:

大大加速数据的处理速度,使目前每日每时都在产生的庞大数据得到有效的利用。

实现人与人和人与机之间的图象通讯,而不是目前的文字或数字通讯,从而使人们观察到传统方法难以观察到的现象和规律。

是科学家不仅被动地得到计算结果,而且知道在计算过程中发生了什么现象,并可改变参数,观察其影响,对计算过程实现引导和控制。

可提供在计算机辅助下的可视化技术手段,从而为在网络分布环境下的饿计算机辅助协同设计打下了基础。

总之,可视化技术的发展将使科学研究工具和环境进一步现代化,从而使科学研究的面貌发生根本性的变化,具有极其重要的意义。

2 课题的基本内容和方案

2.1 图像及图像的类型

图像上的点通常称为像素(Pixel),其最普通的数学表达式为

其中,为空间坐标,为波长,为时间,为像素上的光强度。采用不同的自变量和光强度可得到不同类型的图像,如表1所示

表1 不同类型的图像及其参数

注:表中*表示此类图像需要此参数,带括号时表示可有可无

2.2 图像文件格式和显示机制

2.2.1 BMP文件格式

图像文件的基本格式是BMP位图文件格式。位图文件(Bitmap-File,BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把它称为设备相关位图(device-dependent bitmap,DDB)文件格式。Windows 3.0以后的BMP位图文件格式与显示设备无关,因此把这种BMP位图文件格式称为设备无关位图(device-independent bitmap,DIB)格式,目的是为了让Windows能够在任何类型的显示设备上显示BMP位图文件。BMP位图文件默认的文件扩展名是BMP或者bmp。它是把一幅图像的每一象素点的色彩、亮度等信息逐字逐位地记录下来,信息量同样是相当大的。所有的BMP文件具有相同的文件头(14个字节),其中后4个字节指示文件头与图像数据之间的字节数(位图头)。BMP文件调色板存储方式总是RGB形式,每个入口位4个字节,入口为4的倍数能加快程序的访问速度,RGB三色的入口是倒置的,每个调色板入口的C语言描述如下:

2.2.2 JPG、GIF及TGA文件

在图像的运用中,特别是随着网络技术的普及,对图片的压缩已成了一种很常见的事,压缩图像的格式有数十种之多,这里介绍几种最常用的。

JPG是压缩比最大的格式,连续色调静态图像的数字压缩和编码,采用对称压缩算法。它属于有损压缩,压缩时会有一个选项,让你在体积和质量之间进行选择。在没有明显质量损失的情况下,它的体积能达到原BMP图片的1/10。GIF也属于运用较多的压缩格式,采用可变长度等压缩算法,最多支持256种色彩的图像。它的压缩率略低于JPG,但它有一个最突出的特点,就是能够“动态显示”。它的内部可以包含若干张单独的画面,在显示时逐一出现,其效果就是画面能动起来。另外,它还有一个“褪底”功能,即可以设置背景为透明。这两种技术使它在多媒体网页制作中大显身手。TGA是一种无损压缩格式。在对画面质量要求较高时一般可用TGA输出。特别是在一些要求很高的视频输出的场合,往往不是生成AVI视频文件,而是将动态画面逐张生成单独的“TGA系列”。

2.2.3 PCX、TIFF文件

PCX是PC机上使用最久的位图格式,图像数据通过运行长度码压缩。这种压缩方法把连续重复像素值换成一个计数加这个像素值。PCX文件依次由三部分组成:文件头,位图数据和调色板。由于PCX文件可以用几种方法记录数据,解压缩就要用到文件头中像素位数(第3字节)和平面数(第65字节)。平面数如果多于一个,说明不使用调色板。如果使用了调色板,则由像素位数决定调色板的类型。在不使用调色板的情况下,位图数据是实际的像素值,否则是指向调色板的指针(相对调色板起始处的位移)。

TIFF文件有三级体系,从高到低依次为文件头、若干个包含标记指针的目录IFD及数据。IFD提供一系列指针,指示有关数据段在文件中的起始位置并给出每个字段的数据类型及长度。TIFF文件头为8个字节,其中后4字节是指向第一个IFD的指针。文件头后面的结构通常是第一个IFD。大多数应用程序只有一个IFD。一个IFD中除了前2个字节(指针计数)和后4个字节(终结字段),中间部分每12个字节是一个标记指针,这12个字节中间4个字节为指定数据字段中值的数目,后4个字节通常是指向数据字段的指针。

2.3图像处理系统的构成

数字图像处理系统有计算机主机、图像输入设备、图像输出设备和大容量外存储器4部分组成。见图1

图像输入设备 图像输出设备

图1 图像处理系统的框图

2.4图象处理应用示例演示程序

图像在计算机上的显示,实际上是从存有图像数据的图像文件中取出数据,再按计算机显示电路的要求送到显示存储器和调色板寄存器中的过程。从图像文件头中可取得图像的各个参数,这些参数用于控制图像的显示。256色及以下模式还需取出调色板数据。从文件的像素数据部分可得到图像的像素数据,像素数据若是经过压缩的,则需经过解压缩。如图2所示。

图像文件 读入数据 内存 控制与转换 屏幕图像

图2 图像显示的过程

下面给出一段典型的图像显示程序:

利用VC++开发平台,结合图像知识,做出了一个简单的图像处理应用界面见图3,主要功能是实现图像反相、彩色变灰阶、颜色分量、颜色滤波。另外给出了实验结果对比见图4。程序代码见附录。

图3

3三维重构原理

三维重构是计算机视觉领域中一个至关重要的经典问题,也是用计算机模拟人眼视觉功能所需要完成的最后一步,即恢复物体的三维信息。三维重构的用途很广,可以应用在机器人导航,视觉监控,建筑制造等行业。同时在最近几年兴起的计算机虚拟现实,基于图像的绘制(IBR),三维动画等技术中都有广泛的应用。在未来几年中它仍然是计算机视觉的重要研究方向之一。

三维重构即从物体不同视点的图像中恢复物体的三维几何结构信息,主要由三个步骤构成:1)图像特征点的匹配,即从不同图像中找出同一空间点在这些图像上投影点的过程;z)对摄像机进行标定,即确定摄像机固有的与光、电特征及几何结构有关的内参数;3)在此基础上,进一步确定不同图像间摄像机的运动参数,即求解外参数。系统总体框图如图5所示

图5三维重构系统总体框图

4 在AMIRA下重构3D图像,图像以电影文件形式输出

Amira3.1是一套面向对象的模块化软件系统。模块和数据对象是其基本系统组件。所谓模块,是用来观测数据对象或是针对这些对象完成某些计算操作的。各种组件在对象池(object pool)中用不同的图标来表示。图标之间的连线表明不同组件在操作上的依赖关系。比如,某一模块正适用于某一具体的数据对象。在一个上下文相关的弹出式菜单重,会列举出特定的模块类型。根据这个菜单的提示,你可以创建相应的模块与现有的数据对象相匹配。而且,用户仅用很少的交互操作便能在对象池中形成工作网络。模块以及数据对象的各种参数,均可在Amira提供的交互区内进行修改。

由于输入设备的欠缺,本文的实验对象是一简单的立体模型,先用数码相机对其切片作近距离拍摄,得到的图片在photoshop7.0上做了简化处理。

4.1二维物理切片图像的对齐

在对采样的图像进行三维模型重构之前,必须考虑用平移或者旋转的方式来将它们对齐。具体步骤如下:

将文件导入AMIRA

创建对齐模块AlignSlice

点击AlignSlice模块中的Edit按钮

设置界标,将所有图片对齐

点击工具栏中的按钮,启动优化模式,保存数据。

4.2 图像分割

为了更好演示三维立体图像和展现AMIRA的强大处理能力,将对齐后的数据进行分割。具体步骤如下:

导入数据文件

鼠标右键点击数据,选择Labelling\Label Field

转到第1副图片,用笔刷对右边的结构做标记,然后转到最后一副,做同样处理

在图像分割编辑器上方的菜单中选Selection\Interpolate

在AMIRA对象池中选择Label Field对象,然后保存。

4.3 创建动画演示和电影文件

首先定义动画演示序列,再进一步将演示做成电影文件。原始数据在经过图像对齐和分割后,分别得到数据保存为cake1.am和cake2.am,其中后缀名am是AMIRA软件自定义的标准图像格式。下面介绍具体步骤:

点击DemoMaker模块,选择GUI element 端口中的Update按钮,在GUI element列表中选择SurfaceView\Viewask\View0

将Toggle to value端口置为on,在trigger time端口输入0.2,将Event List端口中的Add按钮按下,就完成了将一个新定义的事件加进事件演示列表。用同样办法将cake2.am添加进来。

上述1.2用来演示切片表面,要将数据的立体效果显示出来,只要反键点cake1.am和cake2.am,选择Volex模块,再在GUI element 端口将Volex事件添加进来。

使用像机旋转功能,全面查看数据模型,点击DemoMaker\Update按钮,选择caramerrotate\Time,将开始和结束值设为0~360,启动和结束时间为0.2~0.4,最后点击事件列表端口的Add按钮。

按下DemoMaker时间滑杆的Play按钮,测试一下结果,用时间滑杆处的向后播放按钮,可以完成向后播放。如果演示过程太慢或太快,可以做出相应调整,用右键点击时间滑杆的任意位置,在弹出菜单选择Configure,在对话框中改变Increment参数值,增量越小,动画就慢,反之亦然。

创建电影,右键点击DemoMaker模块,将MovieMaker与DemoMaker连接,在MovieMaker模块,首先点击File name端口的Browse按钮,输入电影文件名称,如D:\test.mpg。后缀mpg说明该电影文件的格式是MPEG,它是数字电影广泛采用的一种标准格式,具有较好的压缩比。

根据需要,调整MovieMaker模块的各项参数,比如,帧数,图像大小,压缩质量等。

完成。

本次实验所得的三维立体图像已作成电影文件格式,因设备简陋,效果不是很好,AMIRA自身给出了一部分模型,这些数据都保存在安装目录下的bin\data中。

5 扩展模块AmiraDev开发平台的研究

AmiraDev是AMIRA开发版,允许用户通过C++对AMIRA的基本应用功能进行扩展,以增加自己所需求的功能模块。AMIRA 开发向导可以为你的组件自动创建编译流程框架,由于AMIRA采用是面向对象的设计思路,因此,用户可以通过一个文档化的C++ API来增加自定义数据类型、可视化或者处理模件、输入/输出例行程序。AMIRA采用面向对象和开放式设计,并使用强有力的标准软件层(例如OpenGL(tm)、Open Inventor(tm)和Qt(tm)),图形化的用户界面可以让用户减少与代码接触,降低工作量。当然,如果有现存代码,通过该模块直接导入也非常方便。这些都使得AmiraDev成为3D数据处理和完成可视化工作的理想的开发和研究平台。

需要声明的是,在安装AMIRA软件时,要选择自定义安装。对于一般用户,只需要在选项Amira下打上勾即可,对于想要开发编程的用户,要另外加上AmiraDev。

5.1 编译、执行AmiraDev试用程序包(demo package)

AmiraDev中含有demo模块的源代码和一个Development wizard向导功能,用来生成新模块,它可作为自己编写模块的样本。AMIRA是用C++来编写的,用AmiraDev来实现一个新的模块,要从当前存在的C++类开始。

demo package中含有所有示例读、写模块的源代码,查阅这些源代码,将给我们的开发带来便捷。首先说明下怎么生成demo package。

启动AMIRA,在Help菜单下选择Development wizard。

在弹出的对话框中设置路径,如D:Amira_local必须用英文,否则AMIRA读不出来。

在copy demo package前面打勾,点击下一步。

在对话框中选择create build system,这是用来生成AMIRA工程项目的,在想要编译的 package前打勾。

选择系统环境Windows visual c++。

完成

这时在D:Amira_local目录下已经生成了demo package,利用vc++软件对其进行编译,再次运行AMIRA,发现demo package下所定义的新的模块已包含在其中。下面就分析其自定义的新数据类型ppm3d。

5.2 开发新的图像数据类型

ppm3d文件是一个三维数量场,包括一个头文件,3个说明体积大小的整数,用0~255表示像素灰度值。

6 总结

本文详细研究了三维可视化软件AMIRA的应用,并将其具体步骤列出,相信给广大使用者带来方便。

通过此次毕业设计不仅仅巩固了我以前所学的专业知识,而且接触了很多以前没有接触过的新知识,比如AMIRA的使用,图像处理,VC++编程等方面的知识,学到了很多课本上没有的东西,大大扩宽了我的知识面,培养了我严肃认真和实事求是的科学态度以及吃苦耐劳的精神以及相对应的工程意识,与其他同学的合作也培养了我的团队合作精神。从这次设计中所学到的相关知识,培养出的团队精神,吸取的经验教训肯定会对我读研时的学习科研有莫大的帮助。

参考文献

[1]章毓晋.图像工程(上册)――图像处理与分析.北京:清华大学出版社,1999,3

[2]章毓晋.图像工程(下册)――图像处理与分析.北京:清华大学出版社,2000,8

[3]阮秋琦.数字图像处理学.北京:电子工业出版社.2001

[4]K R Castleman.Digital Image Processing.Prentice Hall&清华大学出版社,1998

[5]何斌,马天予等.Visual C++数字图像处理.北京:人民邮电出版社,2001

[6]章毓晋.图像分割.北京:科学出版社,2001

[7]M.Sonka,V.Hlavac,R.Boyle.Image Processing,Analysis,and Machine Vision (Second Edition).北京:人民邮电出版社,2002,1

[8]P.L.Rosin,Thresholding for change detection,Technical Report,Bru-Nel Universitu,1997

[9]Elgammal A,Harwood D,Davis L,Non-parametric model for backround subtraction,ICCV Frame Rate Workshop,1999:246-252

[10]余英林.数字图像处理与模式识别.广州:华南理工大学出版社,1990

[11]梁书斌.Visual C++6.0编程基础.北京:清华大学出版社,1999,5

[12]梁书斌.Visual C++6.0高级编程.北京:清华大学出版社,1999,5

[13]唐泽圣等.三维数据场的可视化.北京:清华大学出版社,1999,130-135

[14]孟小红 王卫民 姚长利等.地质模型计算机辅助设计原理与应用. 北京: 地质出版社,2001,4-8.

[15]张生德 张时忠 门吉华.可视化技术及其在地质勘探中的应用浅析.地质勘探安全,2000(4),42-43

[16]Zhang Juming. Design and Display of three-dimensional geological model,Advancement of Chinese mathematical geology. Beijing: Press of Geology, 1995,158-167

[17]张菊明 孙惠文 刘承祚. 局部间断拟合函数在地质曲面分析和显示中的应用,中国数学地质进展.北京:地质出版社,1995,14-23

[18]YiLu,B. Haist, L. Harmon, J. Trenkle, R. Vogt. "An system accurate and efficient for segmenting Machine-Printed Advanced Technology Conference, Washington D. C,.S. Postal Service SthNovember, 1992, Vol. 3


三维可视化软件AMIRA的应用研究.doc

返回顶部