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 作者:毛星云(浅墨) ...
随机推荐
- FreeRTOS——中断管理
1. 只有以“FromISR”或"FROM_ISR"结束的API函数或宏才可以在中断服务函数中使用. 2. 除互斥信号量外,所有类型的信号量都可以调用 xSemaphoreTake ...
- Java 操作jar包工具类以及如何快速修改Jar包里的文件内容
需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...
- java+selenium3.0 运行时出的问题(system property)!
按照之前的文章讲解,都已经搭建好了,可是在刚开始运行就报错了,代码和报错如下: WebDriver driver = new ChromeDriver(); driver.get("http ...
- java 基础知识及Servlet基础
- [技术] 如何正确食用cnblogs的CSS定制
用过cnblogs的估计都知道cnblogs提供了相对比较开放的个性化选项,其中最为突出的估计就是页面CSS定制了.但是没学过Web前端的人可能并不会用这个东西... 所以我打算在此分享一些定制CSS ...
- PPK提供的浏览器类型及版本检测方法
PPK提供的浏览器类型及版本检测方法 一个常用但是被高估的Javascript函数就是浏览器检测.有些时候,你想给出一个说明或者加载一个页面来提示用户,以免使用Safari等浏览器. 使用方法: ...
- Java基础之数据类型、内存、修饰符、代码块
Java 数据类型 基本数据类型 数值:int.short.long 字符:char 布尔:boolean 引用数据类型 class(类) interface(接口) 数组[] 所占字节数(1 byt ...
- python 密码学编程 -- 2
接上一篇随笔 ******************************************************************** * quote : "http://i ...
- CentOS 常用命令及快捷键整理
常用命令: 文件和目录: # cd /home 进入 '/home' 目录 # cd .. ...
- CentOS Linux 新建oracle数据库实例并连接
CentOS Linux 新建oracle数据库实例 安装好oracle之后,首先想到的那就是自己建一个库来看看效果喽. 创建的过程如下文章所说,http://blog.chinaunix.net/u ...