zoukankan      html  css  js  c++  java
  • 【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. 运行可执行文件,即可生成视频文件

     

  • 相关阅读:
    [转载]vue中全局和局部引入批量组件方法
    [转]详解在vue-test-utils中mock全局对象
    [转]imageMagick 在nodejs中报错Error: spawn identify ENOENT的解决方案
    使用 dva 如何配置异步加载路由组件
    dva.js 上手
    [转]axios的兼容性处理
    【转】链接伪类(:hover)CSS背景图片有闪动BUG
    【转】 svn: Server sent unexpected return value (403 Forbidden) in response to CHECKOUT request for-解决方法
    vue 路由相同路径跳转报错
    新手小白第一次与后端联调
  • 原文地址:https://www.cnblogs.com/zhaohuaxishi/p/14235462.html
Copyright © 2011-2022 走看看