gpt4 book ai didi

C++ OpenCV cvMAT 回放

转载 作者:行者123 更新时间:2023-11-28 00:51:04 24 4
gpt4 key购买 nike

我有一个 cvMat 类型的 vector ,我一直在其中存储从我的计算机网络摄像头拍摄的帧。存储 100 帧后,我想回放这些帧。如果 record 是我的 cvMats vector ,我想这可能是这样完成的:

cvNamedWindow("play-back",CV_WINDOW_AUTOSIZE);
cvMoveWindow("play-back",100,100);
for (vector<Mat>::iterator iter = record.begin(); iter != record.end();++iter) {
imshow("play-back",*iter);
}

执行时,该程序似乎可以很好地存储 cvMats 并从网络摄像头获取输入,但是当我尝试播放时,该程序似乎执行该部分代码的速度非常快——实际上非常快,我没有时间欣赏结果。我怎样才能改进这段代码,使播放不那么仓促?

最佳答案

您需要控制 OpenCV 以实际渲染窗口中的每个图像,并在切换到下一个之前将其保持一小段时间。您应该添加对 cvWaitKey 的调用延迟为 41 毫秒(约 24 帧/秒)。然后你可以检查cvWaitKey的返回值,以便用户可以停止播放。像这样:

cvNamedWindow("play-back",CV_WINDOW_AUTOSIZE);
cvMoveWindow("play-back",100,100);
for (vector<Mat>::iterator iter = record.begin(); iter != record.end();++iter) {
imshow("play-back",*iter);
if( cvWaitKey(41) == 27 ) // ESC
break;
}

关于C++ OpenCV cvMAT 回放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14084109/

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