码迷,mamicode.com
首页 > 其他好文 > 详细

opencv-VideoWrite

时间:2021-03-29 12:53:21      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:write   apu   ==   div   number   注意   iter   编码格式   列操作   

VideoWriter的作用是保存录制的视频

学习心得:

  VideoCapture capture(0);之后

  可以·进行一系列操作- 如:

    获取所抓捕的视频的长、宽

    视频帧数和每秒处理的帧数(fps)

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);
int fps = capture.get(CAP_PROP_FPS);

 

 

最后将视频VideoWriter writer(filename , fourcc,fps,Size , params);

  参数列表:

    filename:代表要将视频保存的位置——只是设置一个地址,要想保存下来还得 writer write(frame)

    fourcc:编码格式 

      四个字符用来表示压缩帧的codec,可选参数如下
                     CV_FOURCC(‘P‘,‘I‘,‘M‘,‘1‘) = MPEG-1 codec
                     CV_FOURCC(‘M‘,‘J‘,‘P‘,‘G‘) = motion-jpeg codec
                     CV_FOURCC(‘M‘, ‘P‘, ‘4‘, ‘2‘) = MPEG-4.2 codec
                     CV_FOURCC(‘D‘, ‘I‘, ‘V‘, ‘3‘) = MPEG-4.3 codec
                     CV_FOURCC(‘D‘, ‘I‘, ‘V‘, ‘X‘) = MPEG-4 codec
                     CV_FOURCC(‘U‘, ‘2‘, ‘6‘, ‘3‘) = H263 codec
                     CV_FOURCC(‘I‘, ‘2‘, ‘6‘, ‘3‘) = H263I codec
                     CV_FOURCC(‘F‘, ‘L‘, ‘V‘, ‘1‘) = FLV1 codec

    fps:设置fps

    Size:设置大小

    isColor:如果为True则每一帧为彩色图,否则为灰度图,默认为True

 

  最后附上代码

  

 1 VideoCapture capture(0);//对摄像头的调用
 2     //VideoCapture caputure("D:/大学时光/图片/3.png");
 3 
 4     //下面是对音频的一些处理——因为暂时没有 音频 就注释掉了
 5     
 6         //先获得音频的宽和高
 7         int frame_width = capture.get(CAP_PROP_FRAME_WIDTH);
 8         int frame_height = capture.get(CAP_PROP_FRAME_HEIGHT);
 9         int count = capture.get(CAP_PROP_FRAME_COUNT);//视频中帧数
10         double fps = capture.get(CAP_PROP_FPS);//每秒处理的帧数
11 
12         //打印信息
13         cout<<"frame width:"<<frame_width<<endl;
14         cout<<"frame_height:"<<frame_height<<endl;
15         cout<<"FPS:"<<fps<<endl;
16         cout<<"Number Of Frame:"<<count<<endl;
17     
18     VideoWriter writer("D:/test.mp4",capture.get(CAP_PROP_FOURCC),fps,Size(frame_width,frame_height),true);//注意是D:/ 而不是 D:\ 这样会被当做转义字符 造成错误 或者 \\也行
19     Mat frame;
20     while (true)
21     {
22         capture.read(frame);
23         //进行左右互换
24         flip(frame, frame, 1);
25         if (frame.empty())
26         {
27             break;
28         }
29         imshow("frame", frame);
30         writer.write(frame);//存入视频
31         //To Do something...
32         int c = waitKey(1);
33         if (c == 27) break;
34     }
35     capture.release();
36     writer.release();

 

opencv-VideoWrite

标签:write   apu   ==   div   number   注意   iter   编码格式   列操作   

原文地址:https://www.cnblogs.com/Alan-Wangyoubiao/p/14587883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!