OpenCV 3.0 OpenCL UMat在matchTemplate

时间:2015-12-01 19:35:40

标签: c++ multithreading opencv opencl

我在带有Integrated Graphics 4000和OpenCL 1.1的Intel i5上运行OpenCV 3.0 OpenCL。

在其自己的线程中使用matchTemplate函数和UMat时,线程会挂起并且不会执行任何其他代码行。当它挂起时,它不会抛出任何错误或异常或任何东西,跟踪器线程只返回并且Main继续运行。

我的线程使用matchTemplate可以正常使用Mat容器,我的探测器线程可以很好地与UMat配合使用,所以我认为它与matchTemplate函数本身和UMat有关。有没有人对此有任何想法?

   void Detector::trackOCL(UMat imgLast, UMat img){  //tracker function 
         Rect track = Rect(0,0,0,0);
         UMat result_mat;
         if(!imgLast.empty()){
             if(!img.empty()){
                 matchTemplate(imgLast, img, result_mat, CV_TM_CCORR_NORMED); //hangs here
                 cout << "Test statement" << endl; //doesn't reach here
             }
         }
         //rest of code to process result_mat

0 个答案:

没有答案