opencv VideoCapture使用示例
在centos7下验证VideoCapture功能。
1 opencv处理视频时要使用ffmpeg,这里使用添加源的方式安装,分为3步
1.1 先安装EPEL Release,使用其他的repo源,所以需要EPEL支持
yum install -y epel-release
#如果出现缺少Code提示,可以:
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
#安装完成之后,可以查看是否安装成功
yum repolist
1.2 安装Nux-Dextop源
#导入一个Code
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
#安装nux-dextop 源
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
#查看repo源是否安装成功
yum repolist
1.3 yum安装ffmpeg
yum install -y ffmpeg
yum install -y ffmpeg-dev
2 还要安装gtk库
yum install gtk+-devel gtk2-devel
3 此时可以编译opevcv源码,在源码根目录下建立一个build目录,进入build目录执行
cmake ..
make
make install
到此处安装完成
4 验证程序
摄像头
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
cv::VideoCapture capture;
capture.open(0);//open 根据编号打开摄像头
std::cout<<"-------------"<<std::endl;
if (!capture.isOpened())
{
std::cout << "Read video Failed !" << std::endl;
return 0;
}
cv::Mat frame;
cv::namedWindow("video test");
int frame_num = 800;
for (int i = 0; i < frame_num - 1; ++i)
{
capture >> frame;
//capture.read(frame);
imshow("video test", frame);
if (cv::waitKey(30) == 'q')
{
break;
}
}
cv::destroyWindow("video test");
capture.release();
return 0;
}
本地文件
#include <opencv2/opencv.hpp>
#include <iostream> int main()
{
cv::VideoCapture capture;
capture.open("test.mp4");
std::cout<<"-------------"<<std::endl;
if (!capture.isOpened())
{
std::cout << "Read video Failed !" << std::endl;
return ;
} cv::Mat frame;
cv::namedWindow("video test"); capture.get(cv::CAP_PROP_FRAME_COUNT);
std::cout << "total frame number is: " << frame_num << std::endl; for (int i = ; i < frame_num - ; ++i)
{
capture >> frame;
//capture.read(frame);
imshow("video test", frame);
if (cv::waitKey() == 'q')
{
break;
}
} cv::destroyWindow("video test");
capture.release();
return ;
}
5 说明
运行时出现
Unable to stop the stream: Inappropriate ioctl for device
是因为没有安装ffmpeg-dev导致。
不能播放时确认是否安装yum install gtk+-devel gtk2-devel
opencv VideoCapture使用示例的更多相关文章
- Opencv VideoCapture实时捕捉摄像头信息
#include "opencv2/highgui/highgui.hpp" #include <iostream> using namespace cv; using ...
- opencv videocapture
import time import cv2 import numpy as np from os import path import pickle ''' 关于camera id 此处需要稍微说几 ...
- OpenCV平滑处理示例代码
#include<cv.h> #include<highgui.h> int main(int argc, char** argv) { IplImage* img = cvL ...
- c++ opencv 数学函数示例
// ConsoleApplication11.cpp : Defines the entry point for the console application. // #include " ...
- OpenCV VideoCapture.get()参数详解
转自https://blog.csdn.net/u011436429/article/details/80604590 方便查阅
- [OpenCV-Python] OpenCV 中视频分析 部分 VI
部分 VI视频分析 OpenCV-Python 中文教程(搬运)目录 39 Meanshift 和 和 Camshift 目标 • 本节我们要学习使用 Meanshift 和 Camshift 算法在 ...
- QT与openCV,与PCL结合!
(1):详解QT多媒体框架:给予视频播放器 原文链接:http://mobile.51cto.com/symbian-271123.htm 对于使用主框架的QT程序,实现Qimage的转换可借鉴下面程 ...
- OpenCV 之 图像平滑
1 图像平滑 图像平滑,可用来对图像进行去噪 (noise reduction) 或 模糊化处理 (blurring),实际上图像平滑仍然属于图像空间滤波的一种 (低通滤波) 既然是滤波,则图像中任 ...
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...
随机推荐
- 关于使用JQuery追加Option标签时使用三元运算符添加选中属性的解决办法
$(data.resultList).each(function () { var selectedFlag = ${sessionScope.userI ...
- 天地图使用过程中由于display:none导致加载部分地图瓦片失败
在为按钮添加点击事件让地图显示的时候,初始加载未加载到当前页面尺寸的所有地图瓦片,在display:none之后停止加载地图,所以display:none属性去掉,改为dom解析完成之后$('#map ...
- 笔记evernote
8542-1090-0308-5951 2786-2836-1103-4104 6835-5846-6090-5388 5443-4068-2394-0845
- EF 数据库迁移(Migration)
Update-Database -ConnectionStringName "MyConnectionString"
- [补档] 大假期集训Part.1
新博客搭起来先补一发档... 那就从大假期集训第一部分说起好了QwQ 自己还是太菜掉回了2016级水平 day1: day1的时候来得有点晚(毕竟准高一)然后进机房发现早就开考了还没有给我题面于是搞了 ...
- 暑假集训D10总结
刷题 今天上了一天的树,然后就下不来了,(根本就没上去吧) 打了道256行的SpalySplay,然后在COGS上过了道4星半的[NOI2005]维护数列,然后--我发现!@#在内网上竟然E了(喵喵喵 ...
- 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程
1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用, ...
- 如何发布自己的开源框架到CocoaPods【转】
在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中. 如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod install ...
- vc操作电脑之常用命令
1.重启计算机: ExitWindowsEx(EWX_REBOOT,0); 2.关机: ExitWindowsEx(EWX_SHUTDOWN,0); 3.注销: ExitWindowsEx(EWX_L ...
- 原生JS实现各种经典网页特效——Banner图滚动、选项卡切换、广告弹窗等
在制作网页过程中,我们可能会遇到各种常用的经典网页特效,比如Banner图片滚动.选项卡循环播放.右下角广告弹窗.评论提交展示.选项动态增删.剪刀石头布小游戏等等等...是不是感觉都见到过这些场景.那 ...