本文共 1117 字,大约阅读时间需要 3 分钟。
在Opencv中,使用cvCaptureFromAVI打开一个视频文件后,并使用cvReleaseCapture释放关闭它后,再开启一个线程使用cvCaptureFromAVI打开一个视频文件,此时就会出现错误,在调试中,执行这个“CvCapture *capture = cvCaptureFromAVI( m_strVideoPath ); ”语句后也会出现capture的内存取值为0x00000000,也就是在多线程中cvCaptureFromAVI不能多次使用, cvReleaseCapture这个语句没有彻底执行,后来查到"OpenCV在多线程下不能读取AVI视频新的解决办法" ,
"
Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA).New applications should call instead of CoInitialize.
"
也就是在线程处理函数中,分别在函数头和函数尾加上 CoInitialize(NULL); 和 CoUninitialize(); 这样就可以在多线程下多次读取视频文件了。
转载地址:http://wrsvi.baihongyu.com/