OpenCV读取视频文件第一帧

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后面的字符不同

你可能感兴趣的:(开源)