【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. 运行可执行文件,即可生成视频文件

 

原文地址:https://www.cnblogs.com/zhaohuaxishi/p/14235462.html