使用OpenCV采集摄像头的视频并保存为文件
OpenCV的VideoCapture功能强大,它封装了各种不同的API,见videoio.hpp
enum VideoCaptureAPIs {
CAP_ANY = 0, //!< Auto detect == 0
CAP_VFW = 200, //!< Video For Windows (platform native)
CAP_V4L = 200, //!< V4L/V4L2 capturing support via libv4l
CAP_V4L2 = CAP_V4L, //!< Same as CAP_V4L
CAP_FIREWIRE = 300, //!< IEEE 1394 drivers
CAP_FIREWARE = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE
CAP_IEEE1394 = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE
CAP_DC1394 = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE
CAP_CMU1394 = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE
CAP_QT = 500, //!< QuickTime
CAP_UNICAP = 600, //!< Unicap drivers
CAP_DSHOW = 700, //!< DirectShow (via videoInput)
CAP_PVAPI = 800, //!< PvAPI, Prosilica GigE SDK
CAP_OPENNI = 900, //!< OpenNI (for Kinect)
CAP_OPENNI_ASUS = 910, //!< OpenNI (for Asus Xtion)
CAP_ANDROID = 1000, //!< Android - not used
CAP_XIAPI = 1100, //!< XIMEA Camera API
CAP_AVFOUNDATION = 1200, //!< AVFoundation framework for iOS (OS X Lion will have the same API)
CAP_GIGANETIX = 1300, //!< Smartek Giganetix GigEVisionSDK
CAP_MSMF = 1400, //!< Microsoft Media Foundation (via videoInput)
CAP_WINRT = 1410, //!< Microsoft Windows Runtime using Media Foundation
CAP_INTELPERC = 1500, //!< Intel Perceptual Computing SDK
CAP_OPENNI2 = 1600, //!< OpenNI2 (for Kinect)
CAP_OPENNI2_ASUS = 1610, //!< OpenNI2 (for Asus Xtion and Occipital Structure sensors)
CAP_GPHOTO2 = 1700, //!< gPhoto2 connection
CAP_GSTREAMER = 1800, //!< GStreamer
CAP_FFMPEG = 1900, //!< Open and record video file or stream using the FFMPEG library
CAP_IMAGES = 2000, //!< OpenCV Image Sequence (e.g. img_%02d.jpg)
CAP_ARAVIS = 2100, //!< Aravis SDK
CAP_OPENCV_MJPEG = 2200, //!< Built-in OpenCV MotionJPEG codec
CAP_INTEL_MFX = 2300 //!< Intel MediaSDK
};
VideoCapture不仅可以采集摄像头的视频,还可以采集rtsp流,rtmp流。
现在把代码放上来,这个代码是对摄像头的视频进行采集,并保存为文件。
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>using namespace std;
using namespace cv;int main()
{VideoCapture cap(0);if (!cap.isOpened()){printf("open video capture failed!\n");return 1;}Mat Frame;//设置保存的视频帧数目int frameNum = 200;//保存视频的路径string outputVideoPath = "test.avi";//获取当前摄像头的视频信息cv::Size sWH = cv::Size((int)cap.get(CV_CAP_PROP_FRAME_WIDTH), (int)cap.get(CV_CAP_PROP_FRAME_HEIGHT));VideoWriter outputVideo;outputVideo.open(outputVideoPath, CV_FOURCC('M', 'P', '4', '2'), 25.0, sWH);while (cap.isOpened() && frameNum > 0){cap >> Frame;if (Frame.empty()) break;outputVideo << Frame;frameNum--;imshow("img", Frame);char c = (char)waitKey(10);if (c == 'q') break;}outputVideo.release();system("pause");
}
使用OpenCV采集摄像头的视频并保存为文件相关推荐
- Python+opencv调用摄像头实现拍照并保存
Python+opencv调用摄像头实现拍照并保存 安装 OpenCV库 详细源码 注意事项 安装 OpenCV库 pip install opencv-python 详细源码 调用外接摄像头实现拍照 ...
- linux下使用ffmpeg采集摄像头数据并编码成h264文件
本文讲述如何在linux下,使用ffmpeg采集视频数据,并编码成h264文件. 打算分成3部分讲解: 需要具备的软硬件环境 ffmpeg命令采集摄像头数据并编码成h264文件 ffmpeg代码采集摄 ...
- OpenCV读取摄像头,把摄像头的视频读取保存
一.读取摄像头 #include <opencv2\opencv.hpp> using namespace cv; using namespace std;int main() {//读取 ...
- 4.通过Opencv采集摄像头视频数据
VideoCapture() 虚拟采集器,一般设备号从0开始 cap.read() 读取视频帧 返回值有两个,第一个为状态值,读到帧为true 第二个值为视频帧 cap.release() 释放资源 ...
- buildroot+qt+qcamrea+opencv打开摄像头进行拍照录像保存功能
相关参考 如何用FFmpeg API采集摄像头视频和麦克风音频,并实现录制文件的功能_爱写代码的自由人-CSDN博客_ffmpeg 摄像头 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术. ...
- python调用摄像头录制视频_Python OpenCV使用摄像头捕获视频
我们知道,OpenCV是一款强大的跨平台的计算机视觉库,使用它能完成我们对于图像和视频处理的很多功能,今天,我们使用OpenCV来捕获计算机摄像头的视频. 使用OpenCV捕获摄像头视频 我们知道,视 ...
- 树莓派Ubuntu mate中借助OpenCV实现摄像头定时拍照并保存python语言
刚刚入门的小白,第一次写博客,有不妥的地方还望各路大佬多多指教~ 本帖主要是介绍利用python语言如何在树莓派Ubuntu mate中借助OpenCV实现摄像头给定间隔时间连续拍照,并以拍照时间命名 ...
- 关于OpenCV调用摄像头及视频和图片的保存
打开VS创建好新项目 输入以下代码 #include<opencv2\opencv.hpp> #include<iostream> #include<string> ...
- opencv-python——2(颜色分割(RGB、HSV)、读取摄像头和视频并保存)
前言 关于opencv读取图片等基本操作可以查看opencv-python基础操作汇总--1(读取.画线.平移,旋转缩放.翻转和裁剪等操作) 颜色分割(RGB) 可以通过cv2.split来分割RGB ...
最新文章
- MySQL-MMM实现MySQL高可用
- 技术工坊|解密区块链DApp的代码逻辑,从请求到数据存储都要经历什么?(上海)...
- 2021年信号与系统作业统计处理
- scala中使用Option、Some、None,避免使用null
- 编写第一个OpenACC程序
- js获取el表达式的值_Vue.js
- 【微信】1.微信小程序开发--入门
- python中time模块time函数怎么写的_Python的time模块中的常用方法整理
- 如何设计一张合格的日志表
- 禁用ubuntu16.04的guest账户
- 【翻译】YOLOX: Exceeding YOLO Series in 2021
- 高斯投影坐标正反算公式
- 游戏:杀戮尖塔(Slay the spire)mod--拉格朗·月
- 石墨烯散热科技视频发布,华为Mate20系列将带来极致游戏体验
- “我转行做测试开发的这一年多,月薪5K变成了24K”,文科女生的自白
- Eclipse+Pydev详细配置
- jQuery 查找后代元素
- 南宁python培训价格
- 抖音电商的发展趋势如何
- 金融科技企业哪家强?来看“2020中关村金融科技30强榜单”