240 likes | 460 Views
结题报告. 项目名称:基于 OpenCV 和 OpenGL 的实时动画生成系统的设计与实现. 刘婧怡 高杨 岳思琪 邓健. 主要内容. 项目目标 项目完成状况 主要使用的方法 项目演示. 项目目标. 项目的最终目标 将从摄像头获取的人头部图像实时地较准确地生成 3D 卡通动画图像。. 项目完成状况. OpenCV. 项目完成状况. OpenGL. 主要使用的方法. OpenCV 一、图像处理 将 RGB 图像转换为 HSV 图像,即色调( H ),饱和度( S ),亮度( V )。调整色调,使其与皮肤的颜色相符,再进行二值化。. 主要使用的方法.
E N D
结题报告 项目名称:基于OpenCV和OpenGL的实时动画生成系统的设计与实现 刘婧怡 高杨 岳思琪 邓健
主要内容 • 项目目标 • 项目完成状况 • 主要使用的方法 • 项目演示
项目目标 • 项目的最终目标 • 将从摄像头获取的人头部图像实时地较准确地生成3D卡通动画图像。
项目完成状况 • OpenCV
项目完成状况 • OpenGL
主要使用的方法 • OpenCV一、图像处理 • 将RGB图像转换为HSV图像,即色调(H),饱和度(S),亮度(V)。调整色调,使其与皮肤的颜色相符,再进行二值化。
主要使用的方法 • OpenCV一、图像处理 平滑处理降低噪声中值滤波开运算闭运算 寻找角点 模板匹配
主要使用的方法 • OpenCV二、人脸检测 • 二值化处理后检测人脸比较容易。二值化后,人脸的部分呈现白色(眼睛和嘴除外),就可以很方便地检测出来了。
主要使用的方法 • 效果图
主要使用的方法 • 三、特征提取 • 主要使用的是寻找角点的方法 • 检测出人脸后,绘制脸部轮廓的外接矩形框,在矩形框内部设置感兴趣的区域,寻找眼睛和嘴的角点。
主要使用的方法 • 目前的角点检测算法可归纳为3类:基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测,角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。对灰度图像、二值图像、边缘轮廓曲线的角点检测算法进行综述,分析了相关的算法,并对各种检测算法给出了评价。
主要使用的方法 感兴趣区域的中心是通过角点检测的方法实现的
主要使用的方法 • 综合两个感兴趣区域的中心点,最终得到一个整体的中心点。这个中心点是随着头部的转动而移动的,这样通过计算即可得出这个中心点的具体坐标,从而控制头部转动。
主要使用的方法 • OpenGL 一、载入模型 使用3dsmax等软件制作人头部模型,将模型导入到OpenGL的框架中。 在构建好OpenGL的程序框架后,载入一个三维的模型首先要了解该模型的数据结构。以半条命游戏引擎的ms3d格式为例,模型的结构包括模型的顶点、三角面、网格面、材质等数据。在用OpenGL绘制这些模型的时候都要考虑到这些。
主要使用的方法 • OpenGL 一、载入模型 未贴图的白模 模型的UVW展开贴图 最终效果
主要使用的方法 • OpenGL 二、模型控制 通过使用OpenGL的函数控制模型的视角,大小,旋转角度等参数。比如旋转一定角度后的3d模型如图所示:
主要使用的方法 • OpenGL 三、实时渲染 通过OpenCV传过来的变量参数控制OpenGL模型的位置,旋转和表情动画等。比如在本项目中使用OpenGL的参数yrot和OpenCV代码的参数angle.x共同控制模型摇头的角度,以及使用OpenGL中定义的宏CLOSE_EYE和OpenCV中的corner_count1参数控制模型眼睛的动作。 这一模块需要与OpenCV的代码的良好的组合,最后达到互动、实时渲染动画的效果。
目前主要使用的方法 • OpenGL 三、实时渲染
目前主要使用的方法 • OpenGL 三、实时渲染
目前主要使用的方法 • OpenGL 三、实时渲染
主要使用的方法 • OpenGL 三、实时渲染 载入卡通三维模型 右转30度 正常 左转30度