学生科研

当前位置:首页 > 学生成果 > 学生科研
视频影像与三维模型的映射(2012年 贾宁 管婕 赵博 佘璐)
时间:2014-09-30发布者:本站编辑点击量:265

视频影像与三维模型的映射

武汉大学2012年国家大学生创新实验

组员 :贾宁  管婕  赵博  佘璐

指导教师 :付仲良  教授

在传统的安防监控中是用摄像头传来的监控区域视频影像对不同的区域进行监控的,视频是二维的连续动态影像,缺乏立体感。摄像头所拍摄的范围有限,对于范围较大的区域,需要通过多个监控窗口同时进行观察,这必然造成监控上的不灵活。本课题提出的城市三维模型视频映射技术可以实现视频与三维背景的结合,通过对三维模型的旋转、缩放和漫游功能可以实现对监控区域的整体监控和快速定位。

项目思路:

              

 

      实验采用的视频文件是AVI格式的交通路况视频highwayI_raw.avi,视频长度为29秒,帧速率为14/每秒,帧的大小为320×240。该实验有两个思路,下面就这两个思路分别进行分析。

1、思路一

1)在OnReadvideo()中,添加菜单项“视频纹理映射”,点击菜单项后弹出对话框,选择视频文件,获得文件的路径,利用cvCaptureFromAVI(filename)函数将打开的视频文件指针传给CvCapture类型的指针capture,设置定时器SetTimer(1,1,NULL)

2)添加时间消息响应函数OnTimer(),用cvRetrieveFramecapture)获得视频帧的指针并赋给变量m_img;用cvSaveImage(s,m_img)将获得的视频帧存储为.bmp格式的图像。

3)将bmp图像加载为纹理模式,利用DOM纹理映射的算法将影像映射到三维模型上。

继续响应定时器,从而实现了视频纹理的映射。

2、思路二

1)在OnReadvideo()中,菜单项“视频纹理映射”下拉菜单中添加“打开视频文件”、“视频纹理映射”、“停止视频映射”。

2)点击菜单项“打开视频文件”后弹出对话框,选择视频文件,获得文件的路径,利用cvCaptureFromAVI(filename)函数将打开的视频文件指针传给CvCapture类型的指针capture。设置定时器SetTimer(11NULL)

3)添加时间消息响应函数OnTimer(),用cvRetrieveFramecapture)获得视频帧的指针并赋给变量m_img;用cvSaveImage(s,m_img)将获得的视频帧存储为.bmp格式的图像,通过定时器可以从第一帧读到最后一帧影像,全部保存下来。

4)添加“视频纹理映射”的响应函数,设置定时器SetTimer(22NULL)

OnTimer()中添加响应消息2的代码,将保存的所有帧影像一帧一帧的载入纹理并映射到三维模型上。

结论:

实验中读入“highwayI_raw.avi”视频文件进行纹理映射。从显示结果可以看到实现了视频纹理的映射,视频演示的是某条道路的路面交通情况,可以明显的看到车辆的运动情况。

在演示过程中发现车辆的移动并不是很平滑,经过分析发现,按照思路一进行视频纹理映射时产生的问题可能是由抓取视频帧耗时造成,对于这个问题,可以先将视频的所有帧影像保存下来,然后再一张张的映射到地形上,这样可以减少视频帧抓取时所消耗的时间。思路二的演示效果相较于思路一并没有太大的改善,说明抓取帧影像的耗时对视频纹理映射的影响不大。