在mfc中用opencv显示视频

本文讨论了在MFC应用中利用OpenCV显示视频时遇到的问题,包括‘CWnd::ShowWindow’错误及如何通过修改ShowWindow函数避免opencv窗口闪现。建议在MFC中使用定时器驱动视频显示,以减少窗口混杂可能引发的问题。
摘要由CSDN通过智能技术生成

在mfc中用opencv显示视频为:

while(pFrame=cvQueryFrame(pCapture))
	{
		DrawPicToHDC(pFrame, IDC_STATIC);
		cvShowImage("Show",pFrame);

		if(cvWaitKey(33)>0)
			break;
		
	}

但如果将cvShowImage("Show", pFrame)注释掉,则cvWaitKey将不起作用。

在【1】中给出了隐藏窗口"raw"的代码:

                cvNamedWindow("raw");  
		HWND hWnd = (HWND)cvGetWindowHandle("raw");   
		HWND hRawWnd = ::GetParent(hWnd); //获得父窗口句柄  
		ShowWindow(hWnd, 0);     //0:的时候表示隐藏子窗口  
		ShowWindow(hRawWnd, 0);  //0:的时候表示隐藏父窗口  

自己直接用这个段代码时,产生错误:

'CWnd::ShowWindow' : function does not take 2 arguments

根据MSDN中【2,3】以及【4】,将ShowWindow改为::ShowWindo即可,就可以不产生opencv窗口,而cvWaitKey起作用。

但正如【5】所说,就是每次创建的时候一定先显示出来再隐藏,会造成屏幕上闪过一个窗口࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值