当前位置: 首页 > news >正文

第二十三节 视频处理与保存

void QUickdemo::video_demo(Mat& image)
{
    VideoCapture capture("C://images//video//p1.mp4");
    int frame_width = capture.get(CAP_PROP_FRAME_WIDTH);--获取视频的各种属性,如帧的高度,宽度,帧数和总帧数,并输出控制台
    int frame_height = capture.get(CAP_PROP_FRAME_HEIGHT);
    int count = capture.get(CAP_PROP_FRAME_COUNT);
    double fps = capture.get(CAP_PROP_FPS);
    std::cout<<"frame width:" << frame_width << std::endl;
    std::cout << "frame height:" << frame_height << std::endl;
    std::cout << "FPS:" << fps << std::endl;
    std::cout << "Number:" << count << std::endl;
    Mat frame;
    while (true) {
        capture.read(frame);
        flip(frame, frame, 1);
        
        if (frame.empty()){
            break;

        }
        imshow("frame", frame);
        int c = waitKey(50);
        if (c == 27) {
            break;

        }

    }

    capture.release();

}



void QUickdemo::video_demo(Mat& image)
{
    VideoCapture capture("C://images//video//p1.mp4");
    int frame_width = capture.get(CAP_PROP_FRAME_WIDTH);
    int frame_height = capture.get(CAP_PROP_FRAME_HEIGHT);
    int count = capture.get(CAP_PROP_FRAME_COUNT);
    double fps = capture.get(CAP_PROP_FPS);
    std::cout<<"frame width:" << frame_width << std::endl;
    std::cout << "frame height:" << frame_height << std::endl;
    std::cout << "FPS:" << fps << std::endl;
    std::cout << "Number:" << count << std::endl;
    VideoWriter writer("C://images//video//p2.mp4", capture.get(CAP_PROP_FOURCC), fps, Size(frame_width, frame_height), true);--VideoWriter writer("C://images//video//p2.mp4", capture.get(CAP_PROP_FOURCC), fps, Size(frame_width, frame_height), true):创建一个视频写入对象,用于将处理后的视频写入到“p2.mp4”文件中。参数包括输出文件路径、视频编码格式(从输入视频中获取)、帧率、视频尺寸(与输入视频相同)和是否为彩色视频(这里设置为 true,表示彩色视频)。
    Mat frame;
    while (true) {
        capture.read(frame);
        flip(frame, frame, 1);
        
        if (frame.empty()){
            break;

        }
        imshow("frame", frame);
        colorSpace_Demo(frame);
        writer.write(frame);--将处理后的视频帧写入输出视频文件中。
        int c = waitKey(50);
        if (c == 27) {
            break;

        }

    }

    capture.release();
    writer.release();
    

}


http://www.mrgr.cn/news/52552.html

相关文章:

  • 初尝类型萃取--typename、模板偏特化、和traits之(三)类型萃取
  • [算法日常] 逆序对
  • 2024年了,视频生成模型离通用世界模拟器还有多大差距?SOTA模型全面评估
  • 单链表的定义
  • 数据结构 —— 链式二叉树(C语言讲解)
  • 【蓝队技能】【C2流量分析】MSFCSSliver
  • netron安装(windows linux)
  • VS2022如何查看dll的函数
  • 模型实战(27)之 YOLO11 推理、验证及训练自己的数据集
  • Java设计模式六大原则
  • 【Vue】Vue3.0 (十二)、watchEffect 和watch的区别及使用
  • FreeRTOS - 软件定时器
  • 机器学习——主要分类
  • 系统工程概述
  • 智能算力中心万卡GPU集群架构深度解析
  • 【人工智能】实验室GPU资源申请使用
  • AI+Xmind彻底解决你的思维导图
  • Python学生成绩管理系统在用户交互方面有哪些创新设计?
  • 除GOF23种设计模式之简单工厂模式
  • 微分几何-曲线论(曲线)