遇到的问题------基于OPENCV的车流量识别

1、如何得到 cvNamedWindow创建的窗口的句柄?
答:使用 HWND hWnd = (HWND) cvGetWindowHandle(windowName);     // windowName 就是窗口名

2、如何检测一个窗口是否还存在?
答:使用    BOOL IsWindow(HWND hWnd); //参数为窗口的句柄
当该句柄标识的是一个已存在的窗口,返回非零值;否则,返回零值。

3、在MFC中,如何结束一个线程?
答:比较安全的方式,让函数返回一个返回值。例如:在要结束的地方添加代码return 0.

4、在MFC中,尽管使用了多线程,在第一次调用 cvCaptureFromFile时可以打开文件,再次调用时就无法打开文件,为什么?
答:因为多线程使用前必须加一句CoInitialize(NULL);来对线程进行一个初始化。
CoInitialize是用来初始化COM库的;
  CoUninitialize是用来对COM库做些清理工作的;
例程:
//线程函数
void Proc(void* pstu )
{
   CoInitialize(NULL);//初始化com,否则多线程中的cvCaptureFromFile 不能再次使用
   CvCapture* capture=0;

   capture = cvCaptureFromFile( aviFilePath);
   while(1)
{
    if(...)
          break;
}
   cvReleaseCapture( &capture );
   CoUninitialize();//清理工作
}

你可能感兴趣的:(OPENCV)