摄像头读取视频帧

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
    VideoCapture capture(0);
    if (!capture.isOpened()) {
        printf("could not load video data...\n");
        return -1;
    }
    
    double fps = capture.get(CV_CAP_PROP_FPS);  // 获取视频帧fps
    Size size = Size(capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT));
    //获取帧图像的宽度和高度 size( , )
    printf("FPS : %f", fps);
    VideoWriter writer("L:/opencv_picture/wv_demo.mp4", CV_FOURCC('D', 'I', 'V', 'X'), 15.0, size, true);
    //将摄像头采集的视频写到一个mp4的文件中
    //VideoWriter writer 函数的参数:
    //1.文件位置名称格式  2.编码器(为-1时可以选着编码方式)3.录制帧数 4.录制视频的size 5.true


    // create window
    Mat frame;
    namedWindow("video-demo", CV_WINDOW_AUTOSIZE);

    // show each frame and save
    while (capture.read(frame)) {
        imshow("video-demo", frame);
        writer.write(frame);
        char c = waitKey(100);
        if (c == 27) {
            break;
        }
    }

    waitKey(0);
    return 0;
}

 

posted @ 2022-01-10 03:56  量子与太极  阅读(107)  评论(0编辑  收藏  举报