多线程-openCV(imshow)-QMetaMethod错误

多线程-openCV(imshow)-QMetaMethod错误,opencv,ffmpeg,Opencv,Ffmpeg,我使用函数imshow()创建了2个线程;从openCV 2.4.8中,代码如下: void camera1 (string url) { Mat img; .... imshow("camera1",img); waitkey(1); .... } void camera1 (string url) { Mat img; .... imshow("camera2",img); waitkey(1); .... } int main () { ....

我使用函数imshow()创建了2个线程;从openCV 2.4.8中,代码如下:

void camera1 (string url)
{
  Mat img;
  ....
  imshow("camera1",img);
  waitkey(1);
  ....
}
void camera1 (string url)
{
  Mat img;
  ....
  imshow("camera2",img);
  waitkey(1);
  ....
}
int main ()
{
....
   thread Process1(camera1,url1);
   thread Process2(camera2,url2);
....
} 
程序运行时,终端显示该错误: QMetaMethod::invoke:无法在队列连接中使用返回值调用方法

当我删除一个imshow()函数时,程序运行良好


谢谢!

与UI的任何交互(获取关键事件、创建窗口、绘图)都应该发生在主线程中,UI事件循环在主线程中运行。您可以在后台线程中处理数据,但是当涉及到
imshow
waitkey
时,只能在主线程中处理