多线程-openCV(imshow)-QMetaMethod错误
我使用函数imshow()创建了2个线程;从openCV 2.4.8中,代码如下:多线程-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 () { ....
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
时,只能在主线程中处理