使用C++、opencv处理视频文件

视频也可以理解为图像,只不过是大量的图像一张一张联系在一起,即视频的一帧一帧,视频的每一帧都是一副图像,所以对视频的处理等同于处理图像,只不过需要对视频的每一张(每一帧)图像都进行处理。

opencv中使用VideoCapture类读取视频文件,而不再是Mat,但视频文件的每一帧还是Mat类型。

可从一个小示例中学习一下视频文件的处理:

#include "stdafx.h"
#include <iostream>
#include <opencv2\core\core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;int main()
{system("color 02");//video1后直接传入视频文件路径,如果传入0,//则电脑调用默认摄像头VideoCapture video1("D:\\3.wmv");if (!video1.isOpened()){std::cout << "video is not open" << std::endl;return 1;}//读取视频帧率double rate = video1.get(CV_CAP_PROP_FPS);//当前视频帧Mat frame;//每一帧之间的延时int delay = 1000 / rate;bool stop(false);while (!stop) {if (!video1.read(frame)){std::cout << "no video frame" << std::endl;break;}//添加对每一帧的操作//例:变为灰度//cvtColor(frame, frame, CV_BGR2GRAY);//imshow("video", frame);//循环int frame_num = video1.get(CV_CAP_PROP_POS_FRAMES);std::cout << "frame num: " << frame_num << std::endl;//如果视频播放到120帧,返回至第80帧往后播放if (frame_num == 120){video1.set(CV_CAP_PROP_POS_FRAMES, 80);}imshow("video", frame);//引入延时,也可通过按键停止if (waitKey(delay) > 0)stop = true;}//释放视频文件video1.release();return 0;
}

opencv处理视频文件相关推荐

  1. OpenCV读写视频文件解析(二)

    OpenCV读写视频文件解析(二) VideoCapture::set 设置视频捕获中的属性. C++: bool VideoCapture::set(int propId, double value ...

  2. OpenCV读写视频文件解析

    OpenCV读写视频文件解析 一.视频读写类 视频处理的是运动图像,而不是静止图像.视频资源可以是一个专用摄像机.网络摄像头.视频文件或图像文件序列. 在OpenCV 中,VideoCapture 类 ...

  3. OpenCV编写视频文件的实例(附完整代码)

    OpenCV编写视频文件的实例 OpenCV编写视频文件的实例 OpenCV编写视频文件的实例 #include <iostream> // for standard I/O #inclu ...

  4. OpenCV读取视频文件的实例(附完整代码)

    OpenCV读取视频文件的实例 OpenCV读取视频文件的实例 OpenCV读取视频文件的实例 #include <iostream> // for standard I/O #inclu ...

  5. Qt+OpenCV打开视频文件并在窗口界面上显示

    Qt+OpenCV打开视频文件并在窗口界面上显示 1.新建一个Qt Widgets Application,工程配置文件(.pro文件)内容如下: #------------------------- ...

  6. java opencv 读取视频_java使用OpenCV从视频文件中获取帧

    本文实例为大家分享了java使用OpenCV从视频文件中获取帧的具体代码,供大家参考,具体内容如下 实现功能:使用Java获取mp4.mov.avi等视频文件中的图像帧,每秒获取一帧图像,并保存 环境 ...

  7. OpenCV——读取视频文件并写入文件

    1.代码如下: #include<opencv2/opencv.hpp> using namespace cv;//-----------------------------------[ ...

  8. ffmpeg和opencv 播放视频文件和显示器

    ffmpeg它是基于最新版本,在官网下载http://ffmpeg.zeranoe.com/builds/.编译时VS2010配置相关头文件及库的路径就可以.opencv的搭建參考上一个博客. 首先简 ...

  9. api c语言 播放视频,使用OpenCV播放视频文件(C/C++ API比较)

    OpenCV库很强大,不仅能够显示图片,还能解码显示各种格式的视频文件,而且提供的API接口也很多,包括C.C++.Python.下面比较一下分别使用C和C++播放一段视频文件的实现: C语言实现 $ ...

最新文章

  1. 吵架后一个老公的检讨书(超经典)
  2. BPM实例分享:如何设置表单字体样式
  3. Linux日常命令使用记录
  4. 上一局APP玩,你画我猜,作为灵魂画手从没服过谁
  5. sicily 1068. Euro Efficiency
  6. Linux 之 光标消失隐藏术
  7. http服务器异步响应,4.异步非阻塞多进程的 Http 服务器
  8. 使用了 PHP Code Sniffer 未使用的参数 Unused parameter
  9. maven依赖c3p0_springboot 使用c3p0数据库连接池的方法
  10. 02初尝有限元分析——悬臂梁案例
  11. 仿知乎的问答社区PHP系统+支持响应式/打赏功能
  12. MFC中添加一张图片作为对话框(或CFormView)的背景
  13. python tornado异步_python tornado异步性能测试
  14. ReviewBoard 的安装和使用(二)—— 邮箱的配置
  15. 嵌入式系统开发笔记39:重叠五角星
  16. 6 FI配置-财务会计-定义总账科目组(Account Group)
  17. 【Java房屋出租系统】韩顺平java学习房屋出租系统
  18. 交叉验证(简单交叉验证、k折交叉验证、留一法)
  19. SC16IS750芯片SPI转串口
  20. SDUTOJ3626_团战可以输、提莫必须死(BFS)

热门文章

  1. 1.36亿元转让部分股本,启迪国际“放弃”苏州智华控制权
  2. github特殊的查找资源小技巧
  3. 易优cms基于thinkphp5开发cms系统
  4. 【竞赛篇-新苗申报书撰写(四千字总结建议)】浙江省新苗人才计划申报书撰写经验分享及格式要求
  5. OSChina 周六乱弹 —— 到底谁是小公猫……
  6. 杜拉拉升职记4--读书笔记
  7. 【微信小程序】e.target.id和e.currentTarget.dataset.id的区别
  8. java小兔跳铃铛,Java小知识 - 顾小兔2018的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 注册ChatGPT时提示Oops! The email you provided is not supported
  10. websocket连接