opencv 摄像头/视频读取_写入
来源:互联网 发布:大秦帝国 纵横 知乎 编辑:程序博客网 时间:2024/06/05 20:13
#include"opencv2/opencv.hpp"using namespace cv;using namespace std;void main(){ VideoCapture cap;//视频相关的类 Size size0=Size(568*320) VideoWriter writer("E\\out.avi",CV_FOURCC('X','V','I','D'),20,size0,true); cap.open("1.avi");//打开视频 //cap.open(0);//打开摄像头 //VideoCapture("1.avi"); if(!cap.isOpened()) return; int width=cap.get(CV_CAP_PROP_FRAME_WIDTH);//帧宽度 int height=cap.get(CV_CAP_PROP_FRAME_HEIGHT);//帧高度 int frameRate=cap.get(CV_CAP_PROP_FPS);//帧率 int totalFrames=cap.get(CV_CAP_PROP_FRAME_COUNT);//总帧数 cout<<"视频宽度="<<width<<endl; cout<<"视频高度="<<height<<endl; cout<<"视频总帧数="<<totalFrames<<endl; cout<<"帧率="<<frameRate<<endl; Mat frame; while(1) { cap>>frame; //cap.read(frame); if(frame.empty()); break; writer<<frame; //writer.write(frame); imshow("video",frame); // waitKey(20); if(waitKey(20)>0) break; } cap.release(); destroyAllWindows();}
VideoCapture类常用函数功能
1)open()—打开视频文件或者摄像头
2)isOpened()—判断读取视频文件是否正确 正确返回true
3)release()–关闭视频流文件
4)grab()-抓取下一帧的视频文件或设备
5)Retrieve()—解码并返回视频帧
6)get()———返回指定视频类的相关信息
7)set()———设置类信息的一个属性
几点说明:
1)打开的视频可以是本地文件也可以是网络视频
2)打开视频一定要加异常判断 例如上述代码
——————————————————————————————————
读取摄像头
1)读取摄像头方法
VideoCapture cap;
cap.open(int Index);
注:
1)如果默认电脑只有一个USB摄像头,Index=0,如果有2个,一般Index为0和1 根据具体情况区分 ,摄像头接入或者断开会改变Index的值
2)如果接入两个以上,但只想用指定的一个,可以在设备管理器中禁用其他,同时Index设置为0
3)用waitKey()返回值判断退出预览
写入视频
VideoWriter
CV_WRAP VideoWriter(const string&filename,int fourcc,double fps,Size frameSize,bool isColor=true);
CV_WRAP VideoWriter();
类的构造函数可以指定文件名,播放帧率 帧尺寸 是否创建彩色空间
1)两种写入帧的方法
1 writer.write(frame);
2 writer<
- opencv(2)---摄像头/视频读取_写入
- opencv 摄像头/视频读取_写入
- opencv 读取视频、打开摄像头、写入视频文件
- opencv 读取视频、打开摄像头、写入视频文件
- 【OpenCV学习笔记】四、摄像头/视频的读取与写入
- OpenCV从摄像头读取视频
- opencv读取视频与摄像头
- 摄像头和视频的读取和写入
- opencv读取视频,摄像头,保存视频代码
- 使用openCV读取视频或摄像头
- 利用opencv打开摄像头读取视频
- Opencv读取视频和打开摄像头
- Opencv 读取摄像头和视频数据
- opencv读取视频和摄像头常见问题
- opencv:摄像头和视频的读取
- Opencv读取摄像头及视频相关
- Qt+OpenCV摄像头读取保存回放视频
- Opencv-Python(二) 读取, 写入/出视频
- LeetCode 38. Count and Say
- javascript总结
- git中Please enter a commit message to explain why this merge is necessary. Please enter a commit mess
- for,while循环,if判断格式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- opencv 摄像头/视频读取_写入
- 【总结】嵌入式Linux学习中遇到的问题及解决方法
- SpringMVC_interceptor拦截器
- USACO-Section1.4 Arithmetic Progressions【暴力枚举】
- 最短路 poj flyod
- Unity自定义组件之(五) 目录树 UITree
- 一点关于cookie的知识
- 逻辑运算
- 之江学院2017ACM 校赛Problem G qwb去面试