资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
刘婧怡刘婧怡 高杨高杨 岳思琪岳思琪 邓健邓健结题报告结题报告项目名称:基于项目名称:基于OpenCVOpenCV和和OpenGLOpenGL的的实时动画生成系统的设计与实现实时动画生成系统的设计与实现主要内容主要内容项目目标项目目标项目完成状况项目完成状况主要使用的方法主要使用的方法项目演示项目演示项目目标项目目标项目的最终目标项目的最终目标将从摄像头获取的人头部图像将从摄像头获取的人头部图像实时地较准确地生成实时地较准确地生成3D3D卡通动卡通动画图像。画图像。项目完成状况项目完成状况OpenCVOpenCV项目完成状况项目完成状况OpenGLOpenGLOpenGL载入模型载入模型模型控制模型控制实时渲染实时渲染载入载入3d模型模型载入贴图载入贴图材质材质视角变换视角变换模型旋转模型旋转缩放等缩放等面部表情面部表情 实时动画实时动画主要使用的方法主要使用的方法OpenCVOpenCV一、图像处理一、图像处理将将RGBRGB图像转换为图像转换为HSVHSV图像,即图像,即色调色调(H H),饱和度(),饱和度(S S),亮度(),亮度(V V)。)。调整色调,使其与皮肤的颜色相符,调整色调,使其与皮肤的颜色相符,再进行二值化。再进行二值化。主要使用的方法主要使用的方法OpenCVOpenCV一、图像处理一、图像处理 平滑处理平滑处理降低噪声降低噪声中值滤波中值滤波开运算闭运算开运算闭运算 寻找角点寻找角点 模板匹配模板匹配主要使用的方法主要使用的方法OpenCVOpenCV二、人脸检测二、人脸检测二值化处理后检测人脸比较容易。二值化处理后检测人脸比较容易。二二值化后,人脸的部分呈现白色(眼睛值化后,人脸的部分呈现白色(眼睛和嘴除外),就可以很方便地检测出和嘴除外),就可以很方便地检测出来了。来了。主要使用的方法主要使用的方法效果图效果图主要使用的方法主要使用的方法三、特征提取三、特征提取主要使用的是寻找角点的方法主要使用的是寻找角点的方法检测出人脸后,绘制脸部轮廓的外接检测出人脸后,绘制脸部轮廓的外接矩形框矩形框,在矩形框内部设置感兴趣的,在矩形框内部设置感兴趣的区域,寻找眼睛和嘴的角点。区域,寻找眼睛和嘴的角点。主要使用的方法主要使用的方法目前的角点检测算法可归纳为目前的角点检测算法可归纳为3 3类:类:基于灰度图像的角点检测、基于二值基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角图像的角点检测、基于轮廓曲线的角点检测,角点是图像很重要的特征点检测,角点是图像很重要的特征, ,对图像图形的理解和分析有很重要的对图像图形的理解和分析有很重要的作用。对灰度图像、二值图像、边缘作用。对灰度图像、二值图像、边缘轮廓曲线的角点检测算法进行综述轮廓曲线的角点检测算法进行综述, ,分析了相关的算法分析了相关的算法, ,并对各种检测算并对各种检测算法给出了评价。法给出了评价。主要使用的方法主要使用的方法感兴趣区域的中心是通过角点检测的方法感兴趣区域的中心是通过角点检测的方法实现的实现的主要使用的方法主要使用的方法综合两个感兴趣区域的中心点,最终综合两个感兴趣区域的中心点,最终得到一个整体的中心点。这个中心点得到一个整体的中心点。这个中心点是随着头部的转动而移动的,这样通是随着头部的转动而移动的,这样通过计算即可得出这个中心点的具体坐过计算即可得出这个中心点的具体坐标,从而控制头部转动。标,从而控制头部转动。主要使用的方法主要使用的方法主要使用的方法主要使用的方法OpenGLOpenGL一、载入模型一、载入模型使用使用3dsmax3dsmax等软件制作人头部模型,将模型导等软件制作人头部模型,将模型导入到入到OpenGLOpenGL的框架中。的框架中。在构建好在构建好OpenGLOpenGL的程序框架后,载入一个三维的程序框架后,载入一个三维的模型首先要了解该模型的数据结构。以半条命游的模型首先要了解该模型的数据结构。以半条命游戏引擎的戏引擎的ms3dms3d格式为例,模型的结构包括模型的顶格式为例,模型的结构包括模型的顶点、三角面、网格面、材质等数据。在用点、三角面、网格面、材质等数据。在用OpenGLOpenGL绘绘制这些模型的时候都要考虑到这些。制这些模型的时候都要考虑到这些。 主要使用的方法主要使用的方法OpenGLOpenGL一、载入模型一、载入模型未贴图的白模未贴图的白模 模型的模型的UVWUVW展开贴图展开贴图 最终效果最终效果主要使用的方法主要使用的方法OpenGLOpenGL二、模型控制二、模型控制通过使用通过使用OpenGLOpenGL的函数控制模型的视角,大小,的函数控制模型的视角,大小,旋转角度等参数。比如旋转一定角度后的旋转角度等参数。比如旋转一定角度后的3d3d模型如模型如图所示:图所示:主要使用的方法主要使用的方法OpenGLOpenGL三、实时渲染三、实时渲染通过通过OpenCVOpenCV传过来的变量参数控制传过来的变量参数控制OpenGLOpenGL模型模型的位置,旋转和表情动画等。比如在本项目中使用的位置,旋转和表情动画等。比如在本项目中使用OpenGLOpenGL的参数的参数yrotyrot和和OpenCVOpenCV代码的参数代码的参数angle.xangle.x共同共同控制模型摇头的角度,以及使用控制模型摇头的角度,以及使用OpenGLOpenGL中定义的宏中定义的宏CLOSE_EYECLOSE_EYE和和OpenCVOpenCV中的中的c corner_count1orner_count1参数控制模参数控制模型眼睛的动作。型眼睛的动作。这一模块需要与这一模块需要与OpenCVOpenCV的代码的良好的组合,的代码的良好的组合,最后达到互动、实时渲染动画的效果。最后达到互动、实时渲染动画的效果。目前主要使用的方法目前主要使用的方法OpenGLOpenGL三、实时渲染三、实时渲染目前主要使用的方法目前主要使用的方法OpenGLOpenGL三、实时渲染三、实时渲染目前主要使用的方法目前主要使用的方法OpenGLOpenGL三、实时渲染三、实时渲染主要使用的方法主要使用的方法OpenGLOpenGL三、实时渲染三、实时渲染载入卡通三维模型右转30度 正常 左转30度项目演示项目演示Thank you!
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号