Atitit Java OpenCV 捕获视频

Atitit Java  OpenCV 捕获视频

 

,打开一段视频或默认的摄像头

有两种方法,一种是在定义类的时候,一种是用open()方法。

 

一. 读取视频序列

OpenCV提供了一个简便易用的框架以提取视频文件和USB摄像头中的图像帧,如果只是单单想读取某个视频,你只需要创建一个cv::VideoCapture实例,然后在循环中提取每一帧。新建一个Qt控制台项目,直接在main函数添加:

注意:要正确打开视频文件,计算机中必须安装有对应的解码器,否则cv::VideoCapture无法理解视频格式!)运行后,将出现一个窗口,播放选定的视频(需要在创建cv::VideoCapture对象时指定视频的文件名)。

 2015/02/10 · IT技术 · OpenCV

分享到:14

原文出处: Ronny 的博客(@RonnyYoung)   

视频中包含的信息量要远远大于图片,对视频的处理分析也越来越成为计算机视觉的主流,而本质上视频是由一帧帧的图像组成,所以视频处理最终还是要归结于图像处理,但在视频处理中,有更多的时间维的信息可以利用。本文主要介绍OpenCV在处理视频时的一些基本函数。

一、视频帧的读取

OpenCV为视频的读入提供了一个类VideoCapture,下面我们说明一下类的几个重要的方法:

1,打开一段视频或默认的摄像头

有两种方法,一种是在定义类的时候,一种是用open()方法。

C++

 

1

2

VideoCapture capture("../video.avi"); // 方法1

capture.open("../video.avi"); // 方法2

如果把文件名换为设置ID,则可打开摄像头,默认摄像头为0。

2,获取视频帧

获取视频帧可以有多种方法

C++

 

1

2

3

4

5

6

7

// 方法一

capture.read(frame);

// 方法二

capture.grab();

capture.retrieve(frame);

// 方法三

capture>>frame;

3,获取视频的参数

一个视频有很多参数,比如:帧率、总帧数、尺寸、格式等,VideoCapture的get方法可以获取大量这些参数。

C++

 

1

2

double rate=capture.get(CV_CAP_PROP_FPS); // 获取

long nFrame=static_cast<long>(capture.get(CV_CAP_PROP_FRAME_COUNT)); // 获取总帧数

更加相关的参数可以参考手册。

 

.为了保证视频播放的流畅性,帧与帧之间加入了时延。这个时延是通过帧率算出来的。

 

 

private static void t2() {

OpencvUtil.ini();

 //open camera source  

VideoCapture capture=new VideoCapture(1);

  //获取整个帧数

 Mat frame=new Mat();

 boolean stop=false;

// 遍历每一帧

    while (true)

    {

        // 尝试读取下一帧

         boolean read = capture.read(frame);

         System.out.println(" cap read rzt:"+read);

//if (!read)

//             break;

         

         Highgui.imwrite("d:\\0clr\\video"+filex.getUUidName()+".jpg", frame);

//        Highgui..imshow("Extracted Frame",frame);

        // 引入延迟

        core.sleep(1000);

        System.out.println( filex.getUUidName());

    }

 }

 

 

OpenCV成长之路(10):视频的处理 - 文章 - 伯乐在线.html

 

 

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher  kok  虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

 

 

头衔:uke总部o2o负责人,全球网格化项目创始人,

uke交友协会会长  uke捕猎协会会长 Emir Uke部落首席大酋长,

 

uke宗教与文化融合事务部部长, uke宗教改革委员会副主席

uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,

 

uke 首席cto   软件部门总监 技术部副总监  研发部门总监主管  产品部副经理 项目部副经理   uke科技研究院院长uke软件培训大师

 

uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

 Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长

 

uke终身教育学校副校长   Uke医院 与医学院方面的创始人

 uec学院校长, uecip图像处理机器视觉专业系主任   uke文档检索专业系主任

Uke图像处理与机器视觉学院首席院长

Uke 户外运动协会理事长  度假村首席大村长   uke出版社编辑总编

 

转载请注明来源:attilax的专栏  ?http://blog.cn.NET/attilax

--Atiend  v8

 

posted @ 2017-03-05 00:30  attilaxAti  阅读(950)  评论(0编辑  收藏  举报