注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞天心宏的博客

依稀旧梦似曾见,相逢只恨缘太迟

 
 
 

日志

 
 
关于我

出身数学,爱好文学,从事软件开发工作。一个阳光、幽默、热爱生活的男孩子,在追求理想的路上风雨无阻,勇往直前,崇尚“梦想有多远,我们就走多远”!

网易考拉推荐

EmguCV播放视频  

2012-04-12 15:32:10|  分类: OpenCV/EmguCV |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

示例:使用EmguCV播放视频

 

步骤:

1、  创建一个Windows窗体应用程序,将Form1Text属性改为“视频播放PlayVideo

2、  给窗体添加一个按钮,Name属性改为“sltVideoBtn”,Text属性改为“选择视频...

3、  给窗体添加一个OpenFileDialog,用来选择图片文件,将Filter属性设置为“avi File|*.avi

4、  添加EmguCV的引用,这里添加最常用的3个【Emgu.CV.dllEmgu.CV.UI.dllEmgu.Util.dll

5、  添加命名空间

using Emgu.CV;

using Emgu.CV.CvEnum;

6、  编写代码

        /// <summary>

        ///选择视频文件

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void sltVideoBtn_Click(object sender, EventArgs e)

        {

            if (openFileDialog1.ShowDialog()==DialogResult.OK)

            {

                string fileName = openFileDialog1.FileName;

                PlayVideoFile(fileName);

            }

        }

        /// <summary>

        ///播放视频文件

        /// </summary>

        /// <param name="fileName"></param>

        private void PlayVideoFile(string fileName)

        {

            string winName = "PlayVideoWin";

            CvInvoke.cvNamedWindow(winName);

            IntPtr capture = CvInvoke.cvCreateFileCapture(fileName);

            IntPtr iplImage;

            int fps = 0;//帧率

            while (true)

            {

                iplImage = CvInvoke.cvQueryFrame(capture);

                //播放完退出循环

                if (iplImage.Equals(IntPtr.Zero)) break;

                CvInvoke.cvShowImage(winName, iplImage);

                if (fps == 0)

                {

                    fps = (int)CvInvoke.cvGetCaptureProperty(capture, CAP_PROP.CV_CAP_PROP_FPS);

                }

                int c = CvInvoke.cvWaitKey(fps);

                // Esc键退出

                if (c == 27) break;

            }

            //释放资源

            CvInvoke.cvReleaseCapture(ref capture);

            CvInvoke.cvDestroyWindow(winName);

        }

 

运行效果:

 

EmguCV播放视频 - 飞天心宏 - 飞天心宏的博客

  

注:在该示例中,要中途退出视频播放,需要按Esc键,直接关闭播放窗口则不行。

 

飞天心宏 2012-04-12

  评论这张
 
阅读(2371)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018