OpenCV读取视频文件第一帧
flyfish
cv::VideoCapture capture("视频文件路径");//读取本地视频
if (capture.isOpened())
{
cv::namedWindow("显示第一帧");
cv::Mat frame;
if (capture.read(frame))//读取视频的一帧
{
cv::imshow("显示第一帧", frame);
cv::waitKey();
}
}
播放示例
cv::VideoCapture capture("视频文件路径");//读取本地视频
if (capture.isOpened())
{
double fps = capture.get(CV_CAP_PROP_FPS);//每秒显示帧数
int spf = (int)(1000 / fps);//视频每一帧间隔
// 获取视频总帧数
int TotalFrames = (int)(capture.get(CV_CAP_PROP_FRAME_COUNT));
cv::namedWindow("播放");
for (;;)
{
cv::Mat frame;
capture >> frame;
if (frame.empty())
{
break;
}
cv::imshow("播放", frame);
char c = cv::waitKey((int)(spf)); // 按 帧率 播放视频
if (c == 27)// 按下Esc退出播放
{
break;
}
}
capture.release();
cv::destroyWindow("播放");
}
运行环境需要 opencv_ffmpeg310.dll,版本号不同opencv_ffmpeg后面的字符不同