免费素材网站psd,互动营销策略,西安市在建工程项目,腾讯企点下载目录
一、前言
1、简介
2、测试工程代码下载链接
3、EmguCV 库文件下载链接
二、工程环境配置
1、EmguCV控件添加引用
#xff08;1#xff09;窗口控件添加 #xff08;2#xff09;相关Dll文件添加添加引用
#xff08;3#xff09;工程运行基础文件夹添加 1窗口控件添加 2相关Dll文件添加添加引用
3工程运行基础文件夹添加 4调试运行
2、界面设计
1整体布局 2设置Image相关属性 3、添加相应控件事件程序
1全局变量
2打开影片
3播放和暂停 一、前言
1、简介 EmguCV是C#版本的OpenCVEmguCV播放视频主要是将视频解析成一帧帧图像画面。每秒钟显示相对应的帧数画面即可达到视频播放的效果。本质上是很短的时间显示足够多的图像因此播放过程中没有影片声音。使用该方式播放视频的优势是可以对视频进行精确播放控制 播放控制效果
2、测试工程代码下载链接
https://download.csdn.net/download/panjinliang066333/88167836
3、EmguCV 库文件下载链接
https://download.csdn.net/download/panjinliang066333/85711171
二、工程环境配置
1、EmguCV控件添加引用
创建C# Winform工程
1窗口控件添加
工具箱中添加EmguCV选项卡向EmguCV中添加EmguCV.UI控件 向窗口中添加EmguCV-ImageBox控件控件背景颜色设置为黑色 2相关Dll文件添加添加引用 3工程运行基础文件夹添加
将库文件中的X86文件夹复制到程序工程的Debug或者Release文件夹下。不管是X86系统还是X64系统都要复制该X86文件夹。 4调试运行
F5或者启动运行无错误。
2、界面设计
1整体布局 2设置Image相关属性
①设置ImageBox控件Enable为False否则程序运行起来鼠标在控件上滚动会会对图像进行缩放 ②设置ImageBox控件SizeMode为Zoom即根据控件大小调整显示的图像对应的尺寸大小 3、添加相应控件事件程序
1全局变量 private MmTimer userTimer new MmTimer(); //精确定时器Capture cap;int fps; //影片帧率int numFrames; //影片总帧数int videoWidth; //影片宽度int videoHeight; //影片高度int currentFrame 0; //当前帧double setFrame 0; //定位到的帧bool isStart false; //是否播放
2打开影片 private void btnOpenFile_Click(object sender, EventArgs e){try{//打开视频OpenFileDialog openFileDialog new OpenFileDialog();openFileDialog.Filter MP4文件|*.mp4|AVI文件|*.avi|RMVB文件|*.rmvb|WMV文件|*.wmv|MKV文件|*.mkv|所有文件|*.*;if (openFileDialog.ShowDialog() DialogResult.OK){txtFileName.Text openFileDialog.SafeFileName;////Application.Idle Application_Idle; //事件方式cap new Capture(openFileDialog.FileName); //读入视频//fps (int)cap.GetCaptureProperty(CapProp.Fps); //获取视频帧率txtFps.Text fps.ToString();numFrames (int)cap.GetCaptureProperty(CapProp.FrameCount); //获取视频总帧数txtFrameNums.Text numFrames.ToString();videoWidth (int)cap.GetCaptureProperty(CapProp.FrameWidth); //获取视频宽度txtWidth.Text videoWidth.ToString();videoHeight (int)cap.GetCaptureProperty(CapProp.FrameHeight); //获取视频高度txtHeight.Text videoHeight.ToString();}}catch{MessageBox.Show(操作异常, 提示!!!);}}
3播放和暂停 private void btnPlay_Click(object sender, EventArgs e){if (txtFileName.Text ){MessageBox.Show(请先打开视频);return;}if (btnPlay.Text 播放){isStart true;btnPlay.Text 暂停;//cap.SetCaptureProperty(CapProp.PosFrames, currentFrame);txtCurrentFrame.Text currentFrame.ToString(); //当前播放的帧数Mat a cap.QuerySmallFrame();imageBox1.Image a;GC.Collect();PlayTimeSet();}else if (btnPlay.Text 暂停){isStart false;btnPlay.Text 播放;userTimer.Stop();}}