基于opencv与MFC的视频播放。

这篇博客介绍了如何在MFC应用中结合OpenCV实现视频播放功能,同时解决了界面无法响应操作和视频播放速度过快的问题。通过使用多线程,确保了视频播放时用户仍能与界面交互。通过在视频播放线程中加入Sleep函数,调整了视频播放速度。此外,还展示了如何在视频中画线的方法。
摘要由CSDN通过智能技术生成

这几天要使用opencv处理视频,需要做一个MFC界面。就整理了关于MFC播放视频的代码。

首先在界面上一个打开文件的button,若还没有选择视频位置,则播放键为灰。用户选择后可以得到视频的位置,相应的播放键从灰色变成可选。

void CShowVideoDlg::OnBnClickedOpenVideo()
{
CFileDialog mcfiledialog(TRUE,NULL,NULL,0,"Video File (*.avi)||",this);//文件打开窗口

if (IDOK == mcfiledialog.DoModal())//点击确定后,将路径记录至strVideopath中。
{
strVideoPath = mcfiledialog.GetPathName();
}
if (strVideoPath!="")//若path为空,则将两个播放按钮变灰
{
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
}
// TODO: 在此添加控件通知处理程序代码
}

然后就可以写播放视频的代码了,之前写的代码视频播放功能倒是可以实现,但是存在两个问题:

1.视频播放的过程中界面不能响应操作。

2.视频播放速度过快

为解决第一个问题,需要引入多线程,以下是关于多线程实现视频播放的代码

//按下播放键后,生成线程所需信息,创建新线程。

void CShowVideoDlg::OnBnClickedButton2()<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值