gpt4 book ai didi

c++ - 如何在不使用键或同时关闭的情况下更新 cv::namedWindow

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:57 25 4
gpt4 key购买 nike

我在 C++ 中使用 opencv,我有一个问题。

我想显示一个 cv::Mat 图像,使用 cv::imshowcv::namedWindow 很容易实现.但我希望能够看到它并能够同时更新 cv::Mat

事实上,我想经常(自动)运行创建图像的代码,并且我想在窗口中查看图像的更新版本。此窗口显示在投影仪上,并且应该每时每刻都可以看到最新的图像。当代码完成后,我希望在关闭该窗口之前能够看到最后一张图像。

我的代码的简化版本:

for (int i=1; i < 1000; ++i){
cv::Mat output_projector = cv::Mat::zeros(480, 848, CV_8UC3);
//..
//change the output_projector
//..
cv::namedWindow("Send to projector", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO);
cv::imshow("Send to projector", output_projector);
cv::waitKey(1);
}

我怎样才能做到这一点?

最佳答案

就像你做的那样,但尝试增加 waitKey 参数中的时间。例如。一部标准电影是 25 fps,也就是 4 毫秒,所以尝试使用 waitKey(4),如果速度太快,可以使用更大的值。

为了在最后看到您的图像,您应该在循环之前初始化它(顺便说一句,还有窗口),并最终调用 waitKey(0)

cv::Mat output_projector = cv::Mat::zeros(480, 848, CV_8UC3);
cv::namedWindow("Send to projector", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO);

for (int i=1; i < 1000; ++i){
//..
//change the output_projector
//..
cv::imshow("Send to projector", output_projector);
cv::waitKey(10);
}
cv::imshow("Send to projector", output_projector);
cv::waitKey(0);

关于c++ - 如何在不使用键或同时关闭的情况下更新 cv::namedWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13088068/

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