标签:write apu == div number 注意 iter 编码格式 列操作
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();
标签:write apu == div number 注意 iter 编码格式 列操作
原文地址:https://www.cnblogs.com/Alan-Wangyoubiao/p/14587883.html