gpt4 book ai didi

c++ - OpenCV 捕获循环视频/不检测最后一帧

转载 作者:太空狗 更新时间:2023-10-29 21:25:34 24 4
gpt4 key购买 nike

我正在捕获一个 avi 文件并对其进行处理。我的代码已经运行了一段时间没有问题,但现在它似乎并没有在捕获视频的最后一帧后停止。相反,它一直循环回到视频的开头。我不明白为什么会这样,我想不出 Eclipse 或 OpenCV 有什么变化。我在我的 Ubuntu 电脑上用相同的视频尝试了相同的代码,它没有问题。我什至尝试过重新安装操作系统和应用程序,但都没有成功。

示例代码:

#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;



int main(int argc, char** argv)
{
Mat frame;
VideoCapture capture;
const string inputVideo = argv[1];


char buff[PATH_MAX];
getcwd( buff, PATH_MAX );
std::string fileName( buff );
fileName.append("/");
fileName.append(inputVideo);


capture.open(inputVideo);

while(true)
{
capture >> frame;

if(!frame.empty())
{
imshow("frame", frame);
}
else
{
printf(" --(!) No captured frame -- Break!");
break;
}

int key = waitKey(10);
if((char)key == 'c')
{
break;
}
}

return 0;
}

我在 Mac OS X (10.8.2)、Eclipse Juno 和 OpenCV 2.4.3 上运行它。

如有任何建议或意见,我们将不胜感激。提前致谢

最佳答案

我使用的解决方案是由@GB 作为评论发布的。我正在创建一个解决方案,以便将其标记为一个。

我在抓帧前后都使用了capture.get(CV_CAP_PROP_POS_FRAMES),如果“after”的值小于“before”的值,那么我就到达了视频的结尾。

关于c++ - OpenCV 捕获循环视频/不检测最后一帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798795/

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