结题报告

24
刘刘刘 刘刘 刘刘刘 刘刘 刘刘刘刘 刘刘刘刘 刘刘 OpenCV 刘 OpenGL 刘刘刘 刘刘刘刘刘 刘刘刘刘刘刘

description

结题报告. 项目名称:基于 OpenCV 和 OpenGL 的实时动画生成系统的设计与实现. 刘婧怡 高杨 岳思琪 邓健. 主要内容. 项目目标 项目完成状况 主要使用的方法 项目演示. 项目目标. 项目的最终目标 将从摄像头获取的人头部图像实时地较准确地生成 3D 卡通动画图像。. 项目完成状况. OpenCV. 项目完成状况. OpenGL. 主要使用的方法. OpenCV 一、图像处理 将 RGB 图像转换为 HSV 图像,即色调( H ),饱和度( S ),亮度( V )。调整色调,使其与皮肤的颜色相符,再进行二值化。. 主要使用的方法. - PowerPoint PPT Presentation

Transcript of 结题报告

刘婧怡 高杨 岳思琪 邓健

结题报告

项目名称:基于 OpenCV 和OpenGL 的实时动画生成系统的设计与实现

主要内容• 项目目标• 项目完成状况• 主要使用的方法• 项目演示

项目目标

•项目的最终目标

• 将从摄像头获取的人头部图像实时地较准确地生成 3D 卡通动画图像。

项目完成状况• OpenCV

项目完成状况• OpenGL

OpenGL

载入模型 模型控制 实时渲染

载入 3d模型

载入贴图材质 视角变换 模型旋转

缩放等 面部表情 实时动画

主要使用的方法

• 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 度

项目演示

Thank you!