MFC MDI程序中 开辟线程中的cvQueryFrame只能抓一帧
如题 为什么这个函数不给力了呢?
我的具体线程实现是这样的 在MFC中的Doc类中
m_Capture=cvCreateFileCapture(szPath);
m_FileKind=2;
hTread1=CreateThread(NULL,0,FunPro1,this,0,NULL);
CloseHandle(hTread1);
开辟线程,并把this指针传入线程函数。
在线程函数中
DWORD WINAPI Copenimage11Doc::FunPro1(LPVOID IpParamater)
{
Copenimage11Doc *pObj = (Copenimage11Doc*)IpParamater; //指针转化
while(2==pObj->m_FileKind)
{
pObj->capture_img=cvQueryFrame(pObj->m_Capture);
if(!pObj->capture_img) break;
pObj->Capture_cvvimg.CopyOf(pObj->capture_img);
cvWaitKey(33);
}
return 0;
}
然后再Vier函数中显示 但是出现个问题 只能显示第一帧
我在线程函数中设置了断点 发现这个循环中 capture_img有值,但虽然循环在跑,这个值不变
说明cvQueryFrame起作用了 但总抓取第一帧 为什么呢?
[最优解释]
opencv 很久没接触了,看看是不是有个SetOneShot的函数传进去了True?
[其他解释]