【opencv2】对视频的操作

opencv2中,提供了两个视频操作相干的类,VideoCaptureVideoWriter,固然也有相对应的构造函数。

VideoCapture,其有以下几个操作函数:

open(const string &filename)    //打开视频文件

open(int device)              //打开摄像头,device为装备序号

isOpened()   //判断视频文件或摄像头是不是打开,其返回值为bool

release()   //关闭视频文件或摄像头

grab()     //获得视频或摄像头下1帧,若获得成功,则返回TRUE,其函数类型也是bool型。

retrieve(Mat& image , int channel=())  //解码刚刚获得到的1帧图象,并将其赋给image,这个函数的返回值也是bool型。

read(Mat& image) //获得、解码和读取视频的下1帧。在opencv中,其用“>>”操作符重载了这个函数,即  video >> image

get(int propId)  //返回视频的属性

       propId取值不同,则返回的属性也不同。当propId取以下值时:

       CV_CAP_PROP_POS_MSEC 以毫秒或时间戳的情势当前视频文件的位置

       CV_CAP_PROP_POS_FRAMES 0开始的视频帧解码捕获索引

       CV_CAP_PROP_POS_AVI_RATIO  视频的相对位置,0为开始,1为结束

       CV_CAP_PROP_FRAME_WIDTH  视频帧图片的宽度

       CV_CAP_PROP_FRAME_HEIGHT  视频帧图片的高度

       CV_CAP_PROP_FPS  帧率

       CV_CAP_PROP_FOURCC 视频的4字符代码

       CV_CAP_PROP_FRAME_COUNT  视频的总帧数

       CV_CAP_PROP_FORMAT  视频的图片格式

       CV_CAP_PROP_MODE  后端特定值唆使当前捕获模式

       下面几个属性只在摄像模式下有效:

       CV_CAP_PROP_BRIGHTNESS  图象的亮度

       CV_CAP_PROP_CONTRAST    图象对照度

       CV_CAP_PROP_SATURATION  图象的饱和度

       CV_CAP_PROP_HUE          图象的色度

       CV_CAP_PROP_EXPOSURE    图象的暴光

       CV_CAP_PROP_CONVERT_RGB图象是不是转换为RGB

set(int propId)  //设置属性,其参数的取值和get函数的取值1样

 

VideoWriter,其有以下几个操作函数:

open(const string &filename, int fourcc, double fps, Size frameSize, color = true)

    以上几个参数在上文中均已介绍过了。

isOpened()  //与前面的是1个意思

write(const Mat& image)  //opencv中也一样重载了这个函数,即用操作符<<

 

下面看段程序,程序的功能是将1个段视频变小,即原来1024*780的视频,变成320*280,为了多使用几个视频操作函数,所以有些地方可以大大简化或修改的我没有修改,为了展现1下各个函数的用法。

#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <opencv2/opencv.hpp>
#include <iostream>
#include <stdio.h>

using namespace std;
using namespace cv;

int main(int argc, const char** argv)
{
Mat frame;
VideoCapture video;
VideoWriter newVideo;
double fourcc, fps, width, height;

video.open("25.avi"); //打开视频
fourcc = video.get(CV_CAP_PROP_FOURCC);
fps = video.get(CV_CAP_PROP_FPS);
width = video.get(CV_CAP_PROP_FRAME_WIDTH);
height = video.get(CV_CAP_PROP_FRAME_HEIGHT); //得到视频的1些参数
//新建1个新的视频
markVideo.open("markVideo10.avi", fourcc, fps);
if (video.isOpened() && markVideo.isOpened() )
{
while(true){
video >> frame; //读取视频的每个帧
resize(frame, frame, Size(320, 280)); //将视频的每帧都缩小
if (!frame.empty()){
markVideo << frame; //将缩小后的每个帧都写进新的视频
}
else{printf(" –(!) No captured frame — Break!"); break;}
if ((char)waitKey(1) == 'c') {
video.release(); markVideo.release();
break;
}
}
}
return 0;
}

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » 【opencv2】对视频的操作

65 评论

  1. order molnupiravir sale cefdinir 300mg pill buy prevacid without prescription

  2. imuran 100mcg for sale buy imuran 100 mcg sildenafil 100mg pills for sale

  3. order fluvoxamine 100mg pills luvox 50mg drug buy glipizide

  4. buy viagra 50mg sale cheapest viagra buy generic lisinopril

  5. help with assignments uk paperwriter sildenafil overnight

  6. colchicine drug live blackjack play blackjack online

  7. buy temovate for sale buspirone usa purchase amiodarone

  8. purchase requip without prescription brand ropinirole 2mg trandate 100 mg without prescription

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡