基于OpenCV的DMD视频播放程序开发

时间:2022-07-27 10:55:59

基于OpenCV的DMD视频播放程序开发

摘要:针对DMD视频播放需求,提出了一种基于opencv的视频播放程序开发方法。利用面向对象开发平台VC++6.0设计程序操作界面。调用OpenCV中封装好的函数实现AVI格式视频文件的读取与预处理,将图像帧转换成dmd播放需要的特定灰度图像。通过USB将转换后的图像传送至DMD播放器播放,并在操作界面上实现视频同步播放。

关键词:OpenCV;DMD;VC++6.0;视频播放程序;USB

中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2014)34-8283-02

DMD (Digital Micromirror Device)[1-3]视频播放程序开发工作量很大,它需要将普通视频格式数据进行读取和处理操作。将每一帧数据转换成DMD播放所需要的1024*768的8位深度的灰度图像。如果视频帧的读取、拉伸变换、灰度转换等程序都自己亲手从底层去编写,将会浪费大量时间和精力。OpenCV[4-8]提供了非常丰富的开源图像处理函数,在VC++6.0 编译环境下装载OpenCV图像处理算法库,为机器视觉、数字图像处理提供了极大的便利。

因此,该文提出了一种基于OpenCV的视频播放程序开发的方法,通过调用OpenCV函数库中的图像处理函数实现视频数据的一系列操作,缩短开发时间,提高科研工作效率。给出了DMD视频播放程序开发实例,可以对任意格式AVI视频数据实现读取与图像处理操作,最终实现DMD与操作程序界面同步播放。

1 系统功能需求

1.1视频播放程序功能需求

视频播放程序功能需求主要如下:

1) AVI视频载入,选择计算机上的AVI视频载入到播放程序中;

2) 设置播放速度,即帧率,可以实时的控制视频的播放速度;

3) 视频播放的基本操作主要包括播放、停止与暂停;

4) 视频USB通信状态显示,以便观测视频是否成功发送至DMD播放器。

1.2视频播放程序工作流程

该DMD视频播放软件主要工作流程是:用户载入计算机中的AVI格式视频,读取视频的基本信息(主要是帧数),抽取需要播放的视频帧图像;先进行线性拉伸变换转,将其换成1027*768大小的图像,再将其转换成8为灰度图像;将设置播放速度,通过USB将该图像数据传送至DMD供其播放,同时将该帧图像显示到程序主界面的图像控件中,实现视频的同步播放。其基本操作流程图如图1所示。

2 视频播放程序开发实例

开发环境:Windows XP Microsoft Visual C++ 6.0 OpenCV 2.0

在VC++ 6.0中创建基于对话框的MFC AppWizard(exe)工程,程序主界面如图2所示。

1) 视频播放与图像显示区域:显示播放的视频、图像;

2) AVI播放控制:

① 点击“打开”按钮,弹出打开文件对话框,选择要播放AVI视频文件;

② 点击“播放”按钮开始播放视频。点击“暂停”按钮可以暂停播放,停止在当前帧。再次点击“播放”按钮继续播放。点击“停止”按钮,停止播放,并回到视频第一帧;

③ 滑动滑块可以实时调节播放速度(15~25帧/秒);

3) 状态显示:显示系统工作状态;

① USB连接测试时,显示是否连接成功;

② 播放视频时,显示每一帧图像是否发送成功;

③ 播放图片时,显示图片是否播放成功。

4) USB控制:USB连接测试、播放图片、清空显示、退出程序操作。

主要操作实现代码如下:

① 打开AVI视频操作:打开对话框查找计算机中AVI视频文件

② 抽取播放帧图像信息:

③ 帧图像处理:将图像转换成8位1024*768大小灰度图像

④ 操作界面视频播放

⑤ USB传送1024*768的8位灰度图像至DMD播放

调用系统函数bOpenDriver (…)建立程序与DMD播放器的连接;通过DeviceIoControl(…)函数实现将图像数据发送至DMD播放。

3 总结

本文介绍了基于OpenCV的DMD视频播放程序开发实例,实现了AVI视频数据的读取、处理与实时播放。利用OpenCV中的函数使得视频数据读取、处理、播放问题变得简单,大大节省了程序开发时间,具有很强的实用价值。

参考文献:

[1] 静娴,吴荣治.数字微镜器件(DMD)[J].液晶与显示,2003,18(6):445-449.

[2] 余卿,余晓芬,崔长彩.单光源双光路激光并行共焦测量系统设计[J].光学精密工程,2013,21(2):281-286.

[3] 徐正平,王德江,黄厚田,等.数字微镜器件视频显示性能分析[J].液晶与显示,2013,28(2):255-260.

[4] 陈胜勇,刘盛等.基于OpenCV的计算机视觉技术实现[M].北京:科学技术出版社,2008.

[5] 刘瑞祯,于仕琪.OpenCV教程:基础篇[M].北京:北京航空航天大学出版社,2007.

[6] 马桂珍,朱玲赞,段丽.基于OpenCV的视频应用程序的开发方法[J].现代电子技术,2007(2):65-88.

[7] 刘丽梅,郑新武,陈永明,等.基于OpenCV 的图像处理程序开发方法的研究[J].计算机技术应用,2010(5):21-24.

[8] 郭晖,陈光.基于OpenCV 的视频图像处理应用研究[J].微型机与应用,2010(21):14-17.

上一篇:浅谈计算机三维动画的存在与发展 下一篇:分析审美经验进行计算机交互界面的设计