opencv自学之旅 视频读取,摄像头读取
来源:互联网 发布:省市区县json 编辑:程序博客网 时间:2024/06/10 01:40
opencv 可以很方便的读取摄像头,他有一个CvCapture结构体,可以用来操作摄像头。
首先我们先了解下这个结构体。
1.读取视频文件
cvCreateFileCapture(“文件路径”); 返回指针 CvCapture类型。
这个函数是读取一个视频文件,他的返回类似是 CvCapture 类型。读取的时候是一帧一帧的读取,如果返回值类型 空,那么安装解码器(解码器就是看你电脑能不能正确的把各种文件格式的视频解析, 不然 avi格式,mp4格式等等), 或者 看路径对不对。
1.1获取一帧数据
cvQueryFrame(capture);
输入一个CVCapture 类型的指针,该函数主要功能是将视频下一个帧加载到内存,与cvLoadImage 不同,该函数不重新分配内存。
1.2
cvReleaseCapture()
释放视频空间镇。
那么来看看一个都去视频的源码
int main(){ CvCapture *capture = cvCreateFileCapture("1.mp4"); IplImage *frame = nullptr; cvNamedWindow("mp4", 1); while (1) { frame = cvQueryFrame(capture); if (!frame) { break; } cvShowImage("mp4", frame); char c = cvWaitKey(1); if (c == 27) { break; } } cvReleaseCapture(&capture); cvDestroyWindow("mp4"); return 0;}
这个就是读取一个mp4格式的视频,然后显示出来。 这个 cvWaitKey() 可以控制播放的速度。
2读取视像头操作
读摄像头
cvCreateCameraCapture(int id)
这个函数是读取摄像头操作, 里面的id 代表你电脑连接的外设摄像头id。
#include <opencv2\opencv.hpp>using namespace cv;using namespace std;int main(){ VideoCapture cap(0); cap.set(CV_CAP_PROP_FRAME_WIDTH, 1920); //设置分辨率 cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080); CvVideoWriter* video = NULL; IplImage* frame = NULL; if (!cap.isOpened()) //如果不能打开摄像头给出警告 { cout << "Can not open the camera." << endl; return -1; } else { cap.read(imgOriginal); //首先取得摄像头中的一帧 if (video) //如果能创建CvVideoWriter对象则表明成功 { cout << "VideoWriter has created." << endl; } cvNamedWindow("Camera Video", 1); //新建一个窗口 while (1) { bool bSuccess = cap.read(imgOriginal); if (!bSuccess) //if not success, break loop { cout << "Cannot read a frame from video stream" << endl; break; } frame = &IplImage(imgOriginal); if (!frame) { cout << "Can not get frame from the capture." << endl; break; } cvShowImage("Camera Video", frame); //显示视频内容的图片 if (cvWaitKey(1) > 0) break; //有其他键盘响应,则退出 } cvReleaseVideoWriter(&video); cvDestroyWindow("Camera Video"); } return 0;}
其实原理和读取视频一样, 都是一帧帧的获取,然后显示。
0 0
- opencv自学之旅 视频读取,摄像头读取
- Opencv之读取摄像头
- OpenCV从摄像头读取视频
- opencv读取视频与摄像头
- opencv读取视频,摄像头,保存视频代码
- openCV 之 读取视频
- 使用openCV读取视频或摄像头
- 利用opencv打开摄像头读取视频
- Opencv读取视频和打开摄像头
- Opencv 读取摄像头和视频数据
- opencv 读取视频、打开摄像头、写入视频文件
- opencv读取视频和摄像头常见问题
- opencv(2)---摄像头/视频读取_写入
- opencv 读取视频、打开摄像头、写入视频文件
- opencv 摄像头/视频读取_写入
- opencv:摄像头和视频的读取
- Opencv读取摄像头及视频相关
- Qt+OpenCV摄像头读取保存回放视频
- 传统盒模型和css3盒模型对比
- MySQL 技术内幕 读书笔记(一)
- db.serverStatus()注释
- HTML5第三课时,表格应用以及表格属性
- Java中关于static
- opencv自学之旅 视频读取,摄像头读取
- zepto: 随手记
- UVA, 10299 Relatives
- mysql格式化日期
- OpenStack 业务链networking-sfc介绍 (3)
- android 系统开发资料汇总 2 高性能web服务 tomcat 集群 apache
- [042]各类距离计算函数——Python版
- Linux 环境部署--网络问题
- OkHttp网络请求