ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:1.96MB ,
资源ID:11825168      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11825168.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(三维人体建模与显示.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

三维人体建模与显示.doc

1、 基于单目视觉测量的人体建模与显示 盛光有1,姜寿山1,张欣2 (1.西安工程大学 电子信息学院,陕西 西安 710048; 2.西安工程大学 服装与艺术设计学院,陕西 西安 710048 ) 摘要:以一种基于单目视觉测量原理的三维人体扫描装置获得的人体数据为来源,运用三角面片法构建人体表面,并把人体模型保存为一种标准的模型格式文件OBJ文件,获取了三维人体模型。然后在Visual C++的编程环境中采用OpenGL(Open Graphics Library)作为三维图形接口,编程实现了三维人体模型,获得了可视化的人体模型。 关键词:三维人体模型;虚拟试衣;OpenGL

2、人体显示 随着人们对服装的舒适性,合体性和款式的个性化的要求越来越高。传统的二维服装CAD软件暴露出了种种不足之处,如号型难以适应不同形态的人体,不能在衣片设计阶段就看到成衣后的效果,需要反复修改等。根据个人体型进行单量单裁的量身定制方式(Made To Measure,简称MTM)应运而生,由于能满足个性特殊需求,这种方式深受人们欢迎。法国力克公司推出了一种服装量身定制系统[1],按照客户具体要求量身定制,做到量体裁衣,使服装真正做到合体舒适. 德国TechMath公司的FitNet软件系统针对该顾客的体型,从人体数据库中直接搜索出相近的体型及配套服装样板,并提供了进一步根据顾客体型

3、和穿着习惯修改样板的功能[2]。还有英国的Baird Menswear西服公司,其销售到国内和国际市场的西服中有80%是通过量身定制系统完成的,并且服装系列涵盖了不同款式、颜色和规格的组合[3]。而国内的三维服装CAD技术远远落后于西方发达国家,近几年来国内的一些院校和公司也都在研究这方面的技术。其中获得可视的三维人体模型的是三维虚拟试衣系统和三维服装CAD系统中的关键技术。本文以一种人体扫描仪所获取的三维人体数据为数据为基础,采用三角面片法构建了人体表面模型,并编程实现了人体模型的真实感显示。 1 三维人体模型构建 1.1 数据获取 目前,获取用于三维人体模型重建的数据,主要用两种

4、途径。一种是从Poser, Maya 和 3DSMax等软件系统导出人体模型数据,另外一种是采用非接触测量方法,通常是采用非接触式人体扫描仪获取人体表面的三维数据。本为获取数据的方法属于第二种。本文中人体建模用到的数据来源于一种基于单目视觉的双扫描头人体扫描仪所测得的[4]。由于获得的原始数据点云数量很大,并且排列不太规则,因此对原始点云进行了一定的处理,有效地减少了数据点云的数量和增加了点云数据的规律性。关于数据处理的细节不是本文的所讨论的重点,在此不讨论。处理之后的点云如图1所示。 、 图1 经过处理的人体点云 1.2 人体模型构建方法的选取 人体模型主要分为划分为线框模型、表面

5、模型、实体模型、基于物理的模型等[5] 。使用线框模型的方法对人体建模时,它是将人体轮廓用线框图形和关节表示,由于包含的信息有限,因此该建模方法无法实现三维人体模型的真实感显示;表面模型是用组成物体的表面来表示物体。使用这种方法对人体建模时,曲面模型能提供三维人体的表面信息,并进行隐藏线消除和真实感三维人体模型显示;用实体模型的方法对人体建模时,由于它增加了三维人体的实心部分表达,使其信息更加完备,但是计算量大,稳定性差。基于物理的模型在建模过程中引入了人体自身的物理信息,所以基于物理的模型具有更加真实的表达效果,能对人体的动态过程进行有效地描述,但和前面几种相比,在计算上要复杂得多。 综合

6、了几种模型的优缺点,本文采用表面模型表达人体。使用三角面片、BEZIER 曲面、NURBS 曲面等都可以构成物体的表面,其中用得比较多的是 NURBS 曲面 ,但考虑到NURBS技术的复杂性,本文采用小三角面片表示人体曲面。这种方法具有表达简单、计算方便等优点。 1.3 人体模型的构建 前面已经介绍本文将采用一系列三角面片来表示人体表面,通过三维数据点集去构建这些三角面片的过程就叫做三角剖分,也称为三角网格化[6]。目前,关于三维散乱点集的三角剖分理论和算法尚不能尽如人意。然而由于本文中的点云已经处理为图1的形式,此时的人体表面是用一层层的轮廓线描述的。因此只要设法将人体相邻两截面

7、用三角面片连接起来,就完成了三角网格化的过程。 构造连接相邻两截面轮廓线的三角面片的过程也叫做轮廓连接。连接的方法有许多,目前常用方法主要有最短对角线法,最大体积法,相邻轮廓线同步前进法。由于相邻轮廓线同步前进法,只需要沿着轮廓线进行同步前进,灵活性较好并且计算不复杂,也很少出现狭长三角形等较差表面,因此本文选用这种方法来构建人体模型。 这一方法的主要思想是,在用三角面片连接相邻两条轮廓线上的点列时,使得连接操作在两条轮廓线上尽可能同步进行。如图2所示,假设上下轮廓分别为P、Q,Pi、Qj(0≤i

8、廓线的周长所得的值,同时假设φi 表示上轮廓线中已经存在的轮廓线线段长度之和的标称值,φj表示下轮廓线中已经存在的轮廓线线段长度之和的标称值。假设此时应判断选择三角形PiPi+1Qj或三角形PiQjQj+1,则当|φi+ψi-φj|<|φj+ψj-φi|时,沿上轮廓线前进,选择三角形PiPi+1Qj,否则沿下轮廓线前进。 图2 相邻轮廓线同步前进法构建三角面片示意图 人体扫描仪所测得的人体数据分为六个部分,即左右腿,左右臂,躯干以及头部。按照上述方法,分别重构了这六个部分。为了获得完整的人体,还必须对这分割后的六个部分进行曲面拼接。包括左右腿和躯干的拼

9、接,左右臂以及躯干和头部的拼接。首先需要考虑的就是相邻截面轮廓线的对应问题。以左右臂以及躯干和肩头部的拼接为例,需要首先将肩头部的第一层截面(用Ch表示)分成三部分,分别对应左右臂以及躯干部分的最后一层截面(分别用Cl、Cr、Cm表示)。对应的方法为比较Ch上各点x坐标与左右腋窝点的x坐标,若某点x坐标小于右腋窝点的x坐标,则将该点对应于Cr,若某点x坐标大于左腋窝点的x坐标,则将该点对应于Cl,剩余点对应于Cm.。在将两截面轮廓线对应后,再次按照轮廓线同步前进法分别连接各个分离的部分,则完成了人体模型的构建。构成的三角向形网格如图3所示。 图3 构建的三角形

10、网格 1.4 人体模型的存储 在建立人体模型之后,需要将其以一定格式的文件进行存储,以利于应用程序对图形进行处理以及系统以后的扩展。OBJ 文件是 Wavefront公司开发的一种文件格式,该文件以纯文本形式存储了模型的顶点、法线、纹理坐标和材质等信息,而且结构非常简单,同时它也是一种标准的3D模型文件格式,很适合用于3D软件模型之间的互导,通用性较好,再者也可以方便系统将来在诸如反求工程等领域的扩展及系统的进一步开发。因此本文选用OBJ文件格式存储人体数据信息。 如果三维人体显示时不经光照的浓淡处理,看到的人体模型就像平面图,没有立体效果。为了有立体效果,必须进行光照处理,这是

11、因为物体在光的照射下其对光的一面和背光的一面呈现的效果不同,只有把这种效果反映出来,二维显示器上的三维模型才有逼真的立体感。 通常我们进行人体模型绘制过程中,在进行光照处理时,必须计算面或点的法线向量才能看到效果。在本课题中以三角片来逼近模仿人体表面,就表现为计算每个三角面片法向量,采用这种方法计算量少。但是这种情况下,当数据点很少,很难模仿人体的光滑皮肤。因此为了得到一个更加真实的人体模型,使人体模型更生动、真实,还需要计算各个点的法向量。 下面我们分别介绍一下三角片法向量和顶点法向量的的计算方法,如图4所示:O,P,Q,R,S,U,V,W是三角片顶点,P是一个中心顶点,它周围有7个三角

12、片,三角片的法线向量分别是n1,n2,n3,n4,n5,n6,n7;其它点是边界点。 图4 求法向量示意图 对于任意三角片,根据平面法线向量定义,三角片的法线向量等于三角片两条向量边的叉乘积,例如三角形OQP,它的面法向量可以这样计算。 (1) 对于中心点P法线向量np可以用平均法线向量计算: (2) 对与边界点Q的法线向量nQ可以用下面公式计算: (3) 其中表示经过它的三角片的面积,表示该三角片法线向量。在OpenGL中,所使用的法线要求是规范化的向量,

13、所以求得法线还必须规范化。这样,通过采用上面的方法计算,各个顶点的法向量是逐渐变化的,经过光照计算,视觉上的效果会很不同。如图5从左到右分别是人体腿部一部分没加光照、加光照但只计算面法向量、加光照并计算点法向量的对比效果。 (a) (b) (c) 图5 大腿的光照效果对比图 按照OBJ格式的要求,分别将人体表面各点,各点的法线向量以及三角面片写入OBJ文件。写入OBJ文件时,各三角形顶点索引号的写入顺序,使其满足右手准则,也就是使构成的三角形法线向外。生成的OBJ文件形式如图6所示。 (a)构成三角形的各顶点

14、 (b) 各个顶点对应的法线 (c) 三角形面片 图6 生成的OBJ文件片段 2 人体模型可视化虚拟环境的搭建 OpenGL(Open Graphics Library),是从SGI公司的GL(graphics library)基础上发展起来的一套独立于硬件、独立于窗口系统的三维图形库。目前,OpenGL在图形设计领域已经成为工业标准,被广泛地应用于图形与动画绘制、虚拟现实技术和计算机可视化等三维图形设计领域[7],而VC++也提供了与OpenGL的接口从而结合二者的特点,能很好地进行交互式三维应用程序的开发。所以本文采用OpenGL作为三维图形接口,以Visual C++6

15、0作为开发环境, 来显示人体模型。 实现VC++6. 0和OpenGL之间图形接口的机制是像素格式设置以及关联DC与RC。在创建一个绘图描述表RC之前,首先要设置像素格式,完成像素格式的设置后,需要为OpenGL建立RC,只有建立RC后, OpenGL才能调用绘图原语在窗口中绘出图形。RC是以线程为单位的,每个线程必须使用一个RC作为当前RC才能执行OpenGL绘图原语. 在VC++6. 0中的MFC中实现OpenGL编程的大致步骤如下: (1) 建立项目文件 利用MFC AppW izard(exe)创建一个单文档的新项目。 (2) OpenGL的基础库设置 在菜单中选择Proj

16、ect→Settings,最后选择LINK选项,然后在“bject/LibraryModules” 下增加OpenGL所需的库程序,具体库程序是OpenGL32.lib、glu32.lib、laux. lib.每个程序开始要包含OpenGL所使用的库的头文件: #include “gl\gl. h”, #include “gl\glu. h” , #include “gl\glaux.h”。 (3) 设置OpenGL支持的Windows窗口风格 OpenGL需要窗口具有WS_ CLI PCHILDREN和WS_CLI PSIBLI NG S风格。前者是创建父窗口使用的Window

17、s风格,后者是创建子窗口使用的Windows风格。主窗口的创建函数PreCreateWindow(CREATESTRUCT & cs)中添加下面的代码: cs. style = WS _ CLIPSIBLINGS| WS _CLIPCHILDREN。 (4) 设置像素格式和关联DC和RC 每个Windows应用程序都必须处理设备描述表。在创建设备描述表之前,要设置设备的像素格式,设置图形界面的属性,包括图形界面的颜色模式,颜色值的位数,使用单缓存还是双缓存,深度缓存的位数等,以及其它一些图形信息。利用OpenGL绘制的窗口也必须设置像素格式。因为,缺省设置的像素格式是Windows的

18、GDI(图形用户接口)。对一个窗口只能设置一次像素格式,像素格式的设置,放在响应WM_CREATE消息的OnCreate()函数中实现。设置像素格式,首先应填充PIXELFORMAT-DESCRIPTOR结构,包括26个属性信息,然后调用处理像素格式的Win32函数关联DC和RC。设置像素格式与关联DC和RC的细节可以参考一下OpenGL编程方面的书籍。 (5) 重载OnSize()函数重载和OnDestroy()函数 在OnSize()中,主要完成对窗口大小变化的响应。当窗口的大小改变改变时,必须重新设置图形显示模式,使其适合应用程序窗口大小,否则会导致图像变形;在程序退出时应该清空当

19、前使用的着色上下文,并删除所创建的着色上下文。 (6) 在Ondraw()函数中完成绘图工作 以上完成了OpenGL在Visual C++环境下编程的有关设置。调用OpenGL有关绘图原语就可以进行编程了。绘图代码一般在Ondraw() 函数中完成。至此,显示人体的虚拟环境就搭建好了。 3 三维人体显示 在VC++的文档/视结构中,应用程序的数据是作为成员变量保存在文档类对象中的,视图类对象通过指针来访问文档类的成员变量。文档类的一个主要任务就是管理文档的数据磁盘存取,在文档类中实现磁盘存取的关键函数是CDocument:: Serialize ()函数。本文就是重载CDocument

20、 Serialize ()函数,在File菜单的0pen命令的消息响应函数中调用CWinApp:: 0nFile0pen ()函数实现OBJ文档读入的。 然后按照前面所讲的,利用MFC AppW izard(exe)创建一个单文档的新项目SingleModel. 然后建立OpenGL与VC++应用接口以及设置OpenGL的绘图环境。然后在Ondraw()中编写绘图代码。本文所显示的人体表面是有一定数量的三角面片构成的。所以绘图的主要工作是调用OpenGL函数绘出这些三角形面片。程序的核心部分是就是指定三角形的定点和法线。 为了增强所显示人体的真实感,启用了OpenGL中的光照功能。在O

21、penGL中使用光照的步骤如下: (1) 定义每个物体的每个顶点的法线向量。这些法线决定了物体相对于光源的方向; (2) 创建一个或多个光源,并设置它们的位置; (3) 创建和选择光照模型, 它定义了全局环境光的层次以及观察点的有效位置(便于进行光照计算)。 (4)定义场景中的物体的材料属性[8]。 另外为了能从各个方面观察所显示的人体,本文实现了所显示的人体可以绕X,Y,Z轴旋转,并能实现缩放功能。在OpenGL中调用glTranslate(),glRotate(),glScale()等函数很容易实现物体的平移,旋转,缩放。综合以上各点,成功实现了OBJ三角网格文件的读取及0pen

22、GL下的显示。不同角度下的人体显示效果如图9所示: (a) (b) (c) (d) 图9 不同角度下的人体显示 4结束语 本文给出了一种三位人体模型的重建方法,采用三角面片法构建了三维人体表面模型,并把建立的人体模型保存一种标准的3D模型文件—OBJ文件。介绍了在Visual C++环境下的OpenGL编程的接口,利用搭建起来的虚拟环境,成功实现了三维虚拟人体的真实感显示,得到了可视化的三维人体模型。本文获得三维人体模型为后

23、续虚拟着装效果展示系统的研发提供了前提,也可用于游戏开发,虚拟现实等领域,有一定的实用价值。 参考文献: [1] 常丽霞, 张欣. 非接触三维人体测量技术在服装工业中的应用[J]. 国际纺织导报,2004(4): 76-79. [2] 张中启, 张欣, 刘书云. 基于量身定制的女式裘皮服装关键技术探讨[J]. 天津工业大学学报, 2008,27(1):42-45. [3] 徐继红. MTM与服装定制最优裁剪方案的研究[J]. 扬州职业大学学报, 2003, 12(4) : 28. [4] 舒方法.基于单目视觉的便携式量体定制系统研究[D].西安:西安工程大学,2008. [5]

24、 崔树芹.三维虚拟试衣系统中参数化人体建模技术的研究[D].华中科技大学,硕士,2006. [6] 袁夏.三维激光扫描点云数据处理及应用技术[D].南京理工大学,硕士,2006. [7] 王兰美,赵继成,秦华东. OpenGL及其在VC++开发环境下的编程实现 [J]. 山东理工大学学报(自然科学版),2006,20(4):37-38. [8] Dave Shreiner, Mason Woo, Jackie Neider ,Tom Davis 著,徐波 等译. OpenGL编程指南(第5版)[M]. 北京:机械工业出版社,2006:115-143. Modeling and Di

25、splay of 3D Human Body Based on Monocular Vision Measurement SHENG Guang-you1, JIANG Shou-shan 1, ZHANG Xin 2 (1. College of Electronic and Information, Xi’an Polytechnic University, Xi’an, Shaanxi 710048, China 2. Apparel & Art Design College, Xi’an Polytechnic University, Xi’an, Shaanxi 71004

26、8, China) Abstract: Triangular facets are used to construct the surface of the human body based on the data messured by a 3D human body scanner . The model is saved in OBJ file which is a standard 3D model format file. In the Visual C ++ programming environment, OpenGL is used to display the 3D human model,and obtains the visual human model. Keywords: 3D human model; virtual fitting system; OpenGL; human model display

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服