在多线程中处理OpenCV waitKey()

时间:2017-08-08 17:07:27

标签: c++ multithreading opencv

我正在尝试使用多线程和OpenCV,所以我编写了以下程序。

void performSearch(Mat& original, Mat& grey, Mat& result)
{
    for(size_t index = 0; index < container.size(); ++index)
    {
         // do stuff

         imshow("Results", result);
         waitKey();
    }
}

int main()
{
    thread(performSearch, ref(image), ref(image_grey), ref(answer)).join();
    thread(performSearch, ref(image2), ref(image2_grey), ref(answer2)).join();
}

此程序将抛出NSInternalInconsistencyException异常,因为需要在主线程上运行waitKey()。我的问题是,我如何附加到主线程?

我有一个iOS背景,并且有一个重要的中央调度,我只需要做一些事情:

DispatchQueue.main.async // this gets me the main queue asynchronously
{
    // update UI
}

是否可以在C ++中实现这一目标?如果是,怎么样?

抬头: 我查看了this问题,他们正在使用QT作为他们的GUI。我不是。

0 个答案:

没有答案