• 【oenCV系列】 写视频


      

      编码环境:

        macOs : 10.15.5

        opencv :  4.4.0

      1. 编码:

     1 #include <stdio.h>
     2 #include <string>
     3 #include <opencv2/core/core.hpp>
     4 #include <opencv2/opencv.hpp>
     5 #include <iostream>
     6 #include <opencv2/videoio.hpp>
     7 
     8 using namespace std;
     9 using namespace cv;
    10 
    11 int main(int argc, char const *argv[])
    12 {
    13     
    14     // 定义视频的宽度和高度
    15     Size s(320,240);
    16     // 指定编解码器 (如果opencv的版本是旧版本,则使用CV_FOURCC('M','J','P','G'))
    17     int fourcc=VideoWriter::fourcc('M','J','P','G');
    18 
    19     string videoFile="/Users/mac/Desktop/my_video_001.avi";
    20     // 定义writer, 并指定FOURCC及 FPS等参数
    21     VideoWriter  writer = VideoWriter(videoFile,fourcc,25,s);
    22     // 检查是否创建成功
    23     if(!writer.isOpened()){
    24         cerr << "can not create video file "+videoFile << endl;
    25         return -1;
    26     }
    27 
    28     //视频帧
    29     Mat frame(s,CV_8UC3);
    30     
    31     for(int i=0;i<100;i++){
    32 
    33         // 将图像设置为黑色
    34         frame=Scalar::all(0);
    35         // 将整数i转为i字符串类型
    36         char text[128];
    37         snprintf(text,sizeof(text),"%d",i);
    38 
    39         // 将数字绘到画面上
    40         putText(frame,text,Point(s.width/3,s.height/3),FONT_HERSHEY_SCRIPT_SIMPLEX,3,Scalar(0,0,255),3,8);
    41         // 将图像写入视频
    42         writer << frame;
    43     }        
    44 
    45     // 退出时程序会自动关闭视频文件
    46     return 0;
    47 }

      

     2. 创建 build目录 、 CMakeLists.txt

      

     build目录是用来保存编译工程中的中间输出文件; CMakeLists.txt是cmake用来进行编译所需的配置项,内容如下:

      

    1 project(writeVideo)
    2 set(SRC_LIST writeVideo.cc)
    3 add_executable(writeVideo ${SRC_LIST})
    4 find_package(OpenCV REQUIRED)
    5 target_link_libraries(writeVideo ${OpenCV_LIBS})

    3.  进入build目录后,执行 cmake .. (注意有2个".",表示cmake读取的文件是在父目录),会在当前目录生成一些中间文件

    4. 在build目录中执行 make 命令,生成可执行文件

    5. 运行可执行文件,即可生成视频文件

     

  • 相关阅读:
    Sqlite数据库的加密
    利用Cache缓存数据DataTable数据提高大数据量访问性能
    MYSQL数据库主主同步实战
    【误人子弟】《ASP.NET常用语句120条,(很实用的)
    Debian 添加 FreeBSD 内核支持
    FIREBIRD的基本数据类型
    扩大Portable Ubuntu的系统可用空间
    SQL语句 按年龄段分组统计人数问题
    aspx 页面,master页面与ascx用户控件传值的问题
    MonoDevelop 2.0 Released 发布
  • 原文地址:https://www.cnblogs.com/zhaohuaxishi/p/14235462.html
Copyright © 2020-2023  润新知