Opencv基础知识-----视频的读取和操作
CvCapture 是一个结构体,用来保存图像捕获所需要的信息。 opencv提供两种方式从外部捕获图像:
视频的使用和操作具体说明:
- 对摄像头初始化捕捉
- CvCapture* capture=cvCaptureFromCAM(0);//从摄像头0捕捉
- 对文件初始化捕捉
- CvCapture* capture=cvCaptureFromAVI("/home/lubo/....avi");//从文件捕捉
- 捕捉某一帧
- IplImage* img=0;
- 方法一
- if(!cvGrabFrame(capture)){ //捕获失败 exit(0); }
- img=cvRetrieveFrame(capture);
- 方法二
- img=cvQueryFrame(capture);
- 如果同时从几个摄像头捕捉,应该先从每一个摄像头抓取图像,抓取结束后再捕捉图像
- 释放捕捉源(图像是由捕捉函数分配和释放的,所以不要释放图像)
- cvReleaseCapture(&capture);
获取视频帧信息
- 获得捕捉装置的属性
- cvQueryFrame(capture); int frameH=(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT);//视频的高
CV_CAP_PROP_FRAME_WIDTH//视频的宽 CV_CAP_PROP_FPS //每秒帧数
CV_CAP_PROP_FRAME_COUNT//帧数 CV_CAP_PROP_FOURCC //4-character code of codec
CV_CAP_PROP_BRIGHTNESS//亮度 CV_CAP_PROP_CONTRAST//对比度
CV_CAP_PROP_SATURATION//饱和度 CV_CAP_PROP_HUE//色调 - 获得帧的当前位置
- CV_CAP_PROP_POS_MSEC //视频当时的毫秒数或者视频的时间戳
- CV_CAP_PROP_POS_FRAME//0-based
CV_CAP_PROP_AVI_RATIO//视频文件的相对位置
保存视频文件
- 初始化视频写入
- CvCideoWriter* writer=0;
- int isColor=1;
- int fps=25;//30
- int frameW=640;
- int frameH=480;
writer=cvCreateVideoWriter("out.avi",CV_FOURCC('P','I','M','1'),fps,cvSize(frameW,frameH),isColor);
- 视频写入的格式还有
- CV_FOURCC('M','J','P','G');
- CV_FOURCC('M','P','4','2');
CV_FOURCC('D','I','V','3');
- CV_FOURCC('D','I','V','X');
- CV_FOURCC('U','2','6','3');
- CV_FOURCC('I','2','6','3');
- CV_FOURCC('F','L','V','1');
- 写入视频文件
- IplImage* img=0;
- int nFrames=50;
- for(int i=0;i<nFrames;i++){
- cvGrabFrame(capture);
- img=cvRetreveFrame(capture);
- cvWriteFrame(writer,img);
}
- 释放视频写入
cvReleaseVideoWriter(&writer);
Opencv基础知识-----视频的读取和操作的更多相关文章
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- Nginx入门篇-基础知识与linux下安装操作
我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...
- opencv基础知识------IplImage, CvMat, Mat 的关系和相互转换
Mat,cvMat和IplImage这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化.而CvMat和IplImage类型更侧重于“图像 ...
- OpenCV基础知识介绍
1.图像与矩阵 一般来说,图像是一个标准的矩形,有着宽度(width)和高度(height).而矩阵有着行(row)和列(column),矩阵的操作在数学和计算机中的处理都很常见且成熟,于是很自然的就 ...
- openCV基础知识
openCV主体分为5个模块: CV图像处理函数和计算机视觉算法: ML机器学习库,包含许多聚类和数据分析函数: HighGUI图像和视频的输入输出: [分成三部分:硬件部分--摄像机;文件部分--载 ...
- opencv基础知识-videowriter
一.前言-简介 在试验中需要常常将实验结果进行保存,在opencv中提供很好用的录制视频的句柄,也可称之为类-videowriter. videowriter应用那是相当的简单,总之分为三步: //声 ...
- OpenCV 基础知识------图像创建、访问、转换
cvCreateImage函数-- Cxcore数组操作 创建头并分配数据 IplImage* cvCreateImage( CvSize size, int depth, int channels ...
- opencv:摄像头和视频的读取
示例代码: #include <opencv.hpp> using namespace cv; int main() { VideoCapture Capture(); //打开默认摄像头 ...
- opencv图片压缩视频并读取
import os import cv2 import numpy as np import time path = './new_image/' filelist = os.listdir(path ...
随机推荐
- 【LeetCode】459. Repeated Substring Pattern
Given a non-empty string check if it can be constructed by taking a substring of it and appending mu ...
- Java 反射 Class类
Java 反射 Class类 @author ixenos 摘要:Class类在反射中的地位.构造Class对象的三种方式.Class对象构造对应类型对象的三种方式 Class类在反射中的地位 位于j ...
- Node使用Mongoose操作MongoDB数据库——增删改查的实现
当初刚出社会时就规划了下自己的职业生涯:先成为一名优秀的前端工程师,再成为一名全栈工程师(精通前端开发.后台开发和客户端开发),最后成为一名优秀的系统架构师.转眼间已经工作快三年,是时候迈出关键性的一 ...
- 4、mybatis动态sql+struts2(通配符+全局配置+分页)
1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ...
- 串string (KMP)
1.Definition 串string,是零个或多个字符组成的有限序列.一般记作S="a1a2a3...an",其中S是串名,双引号括起来的字符序列是串值:ai(1<= i ...
- Payoneer官网注册教程,免费申请美国银行账号
在我搞网赚项目的过程中,碰到境外收款付款的问题,起初我用Paypal贝宝,手续费高得惊人!相信做电商外贸的朋友深有体会.幸而发现了Paypal替代产品Payoneer,注册简单,手续费低,还有中文网站 ...
- VC 中使用 CToolTipCtrl 消失后不再出现的Bug。。。。
最近用WTL重写CGdipButton.从ButtonST中将CtoolTipCtrl的相关代码转过来,发现一个问题: ToolTip可以显示,鼠标移开后再移动到button上也可以再次显示,但是按下 ...
- java代码块 静态、非静态
Java虚拟机的内存分区:Java栈.堆.方法区.本地方法栈.PC寄存器.还有一个常量池的概念,虚拟机会为每种类型分配一个常量池,而不是实例. 例如有一个类有很多子类,那么在父类定义的final变量, ...
- ecos 问题答疑(转)
1.为什么我购买的是源码版,但是我的base/ego.php(或者base/ego/目录下文件)却是加密的? 答:ego 源码商业授权文件仅用于和商派软件签订源码协议的商业用户按照甲乙的源码保护约定 ...
- 将MyEclipse中的项目导入到Eclipse中报错的解决放法
1.导入项目后,会报红色感叹号, 将项目右键,点击红色框.