gpt4 book ai didi

video - 从视频流中选择由给定采样间隔 OPENCV 分隔的所有图像

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:30 25 4
gpt4 key购买 nike

我在一个项目中使用 OpenCV,但我完全是个初学者。

我的大容量存储库中有一个视频文件,我想编写一个方法来访问输入中由给定采样间隔分隔的视频流的所有帧。

视频可以是多种格式(AVI – WMV – MPEG-2 – MPEG-4)。

我在想这个方法应该是这样工作的:

1. Have as input a desired sampling interval
2. Access the video at timestamp corresponding to the sampling interval
3. Save selected frame of video as an image
4. Go to next frame as determined from sampling frequency.

能否请您帮我提供一些代码,或者至少提供有关使用 OpenCV 方法实现此类方法的方法的指示?

最佳答案

可以看看VideoCapture::set方法并使用 CV_CAP_PROP_POS_MSEC 从视频文件中获取特定帧。虽然我没有测试这段代码,但它会是这样的:

cv::VideoCapture vc(video_file_name);
cv::Mat frame;

//How you will get the interval is up to you
float interval = getInterval();
float cur_interval = 0;

while(1)
{
vc.set(CV_CAP_PROP_POS_MSEC, cur_interval);

//The operator>> will return a NULL pointer if the next frame isn't valid
if(vc >> frame)
cv::imwrite("filename.jpg", frame);
else
break;

cur_interval += interval;
}

关于video - 从视频流中选择由给定采样间隔 OPENCV 分隔的所有图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8710381/

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