gpt4 book ai didi

c++ - 使用 cv::waitKey 而不必先调用 cv::namedWindow 或 cv::imshow

转载 作者:太空狗 更新时间:2023-10-29 20:16:06 30 4
gpt4 key购买 nike

我正在使用 Qt 编写一个 GUI 程序,并使用 OpenCV 进行一些视频处理。我在主 GUI 线程的标签中显示 OpenCV 进程(在单独的线程中)的结果。

我遇到的问题是 cv::waitKey 不起作用,除非我打开使用 cv::namedWindow 或 cv::imshow 打开的 native OpenCV 窗口。有人知道如何解决这个问题吗?

简短示例:

void Thread::run()
{
//needed variables
cv::VideoCapture capture(0);
cv::Mat image;

//main loop
//cv::namedWindow("test");
forever
{
capture>> image;
if(!image.data)
break;
emit paintToDisplay(convertToQImage(image));
cv::waitKey(40);
}
}

使用 //cv::namedWindow("test"); 即注释,程序因访问冲突错误而崩溃。

使用 cv::namedWindow("test"); 即未注释,程序显示完美,但有一个窗口(名为 test)我不想要或不需要。有人吗?

最佳答案

cv::waitKey() 仅适用于 OpenCV 窗口,这不是您现在使用的窗口。

我建议您研究一个 QT 替代方案,很可能是 qSleep(),它由 QTest 提供模块:

QTest::qSleep(40);

关于c++ - 使用 cv::waitKey 而不必先调用 cv::namedWindow 或 cv::imshow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637269/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com