ubuntu下安装opencv库+Python2.7环境安装及开发摄像头拍照应用
好久没有更新了,今天更一篇最近遇到的问题,及解决办法,后面博客得继续写起来
安装
#使用Python下的lib库直接进行安装
apt-get install python-opencv
测试
#使用如下代码进行测试,以下代码是拍照,在按q之后,保存图片并退出。
import cv2
cap = cv2.VideoCapture(0)
while(1):
# get a frame
ret, frame = cap.read()
# show a frame
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.imwrite("./test.jpeg", frame)
break
cap.release()
cv2.destroyAllWindows()
至此代表安装基本没有问题,可以进行下一步开发
开发
通过在上述的测试代码添加配置摄像头的参数
#设置摄像头的像素
cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,3264)
cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT,2448)
#设置摄像头的帧率
cap.set(cv2.cv.CV_CAP_PROP_FPS,5)
本以为万事大吉可以收工了,一运行发现了个巨大的问题
错误如下提示
libv4l2: error converting / decoding frame data: v4l-convert: error
destination buffer too small (16777216 < 23970816)
VIDIOC_DQBUF: Bad address
看提示是因为自己想用到高清的,可是libv412库不支持,导致buffer不够大,产生的错误,通过libv4l2: error converting / decoding frame data: v4l-convert: error destination buffer too small 解决问题,下面说一下解决步骤
- 找到libv4l2的源码github
- 更改源码路径下的lib/libv4l2/libv4l2-priv.h文件中的如下代码
//The change was
#define V4L2_FRAME_BUF_SIZE (4096 * 4096)
//to
#define V4L2_FRAME_BUF_SIZE (2 * 4096 * 4096)
- 首先卸载系统之前的这个库文件
sudo apt-get remove libv4l-dev
- 编译安装刚改更改过的库
#源码目录下先进行configure,这个中间貌似由于没有安装autoconf之类的东西,也报过错,出现错误后大家Google一下就能找到答案,都是些容易解决的问题
autoreconf -vfi
make
make install
这样库文件就重新安装了,测试一下,高清的摄像头也可以用了。
同时开多个摄像头
本以为万事大吉了,万万没想到又出幺蛾子了,同时打开三个摄像头的时候又报错了如下:
libv4l2: error turning on stream: No space left on device
一下就嗨皮了,查了一下貌似说是usb带宽不够用了,经过找资料找到下面的解决办法
sudo rmmod uvcvideo
#下面这个128可以更改最好改大点,如果用的是高清摄像头
sudo modprobe uvcvideo quirks=128
如果更改有效,可以用下面的方法进行配置,这样就不用每次都改了
sudo vi /etc/modprobe.d/uvcvideo.conf
options uvcvideo quirks=128
ok终于可以顺利运行了,上面的应用大家就可以根据自己的需要随便改了。
ubuntu下安装opencv库+Python2.7环境安装及开发摄像头拍照应用的更多相关文章
- 如何生成能在没有安装opencv库及vs2010环境的电脑上运行的exe文件
项目基本算法已经完成,甲方需要一个可以运行的demo.目前,程序能在自己的电脑上正常运行.移植到其他win7系统上,运行失败. 寻找各种解决办法,baidu找到两个办法: 1.使用静态链接的方法,这种 ...
- Ubuntu 17.04版本下,opencv进行源码编译安装
本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装.开发环境主要针对python 对 openCV库的调用. 安装 gcc cmake 编译环境 sudo apt-get ins ...
- Win7下Python2.7环境安装paramiko模块
Win7下Python2.7环境安装paramiko模块,经过安装并测试成功,整理文档如下: 1.下载安装Windows版本的Python2.7,我默认装在C:\Python27 我的python已经 ...
- 【视频开发】【计算机视觉】doppia编译之三:编译安装opencv库
这里我介绍2种方法 (1)利用别人写好的脚本编译,相对来说省力一点 上Github下载别人写好的脚本文件,网址 https://github.com/jayrambhia/Install-OpenC ...
- Ubuntu杂记——Ubuntu下Eclipse搭建Maven、SVN环境
正在实习的公司项目是使用Maven+SVN管理的,所以转到Ubuntu下也要靠自己搭环境,自己动手,丰衣足食.步骤有点简略,但还是能理解的. 一.安装JDK7 打开终端(Ctrl+Alt+T),输入 ...
- 在Ubuntu下编译Assimp库
在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...
- ubuntu 下搭建apache+python的运行环境
ubuntu下怎么搭建apache+python运行环境,可以参考http://www.01happy.com/ubuntu-apache-mod-python/ ,这里只是简单的记录下步骤,本文主要 ...
- Ubuntu下搭建Hyperledger Fabric v1.0环境
多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...
- Python如何安装OpenCV库
转载:https://blog.csdn.net/weixin_35684521/article/details/81953047 OpenCV的概念可百度,在此不再赘述.https://baike. ...
随机推荐
- 在CentOS7下安装jekyll
[root@k8smaster nodejs]# yum install gem ruby ruby-devel -y [root@k8smaster nodejs]# gem sources -l ...
- Kafka 源代码分析之log框架介绍
这里主要介绍log管理,读写相关的类的调用关系的介绍. 在围绕log的实际处理上.有很多层的封装和调用.这里主要介绍一下调用结构和顺序. 首先从LogManager开始. 调用关系简单如下:LogMa ...
- 【Android Developers Training】 60. 在你的UI中显示位图
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- JQuery事件机制笔记
一.事件绑定及移除 1.bind() bind()为每个匹配的元素绑定一个或多个事件处理函数: 语法:bind(event,fn)//不能给未来元素添加事件: bind(event,fn); bind ...
- php测试题
1. LAMP具体结构不包含下面哪种(A) A:Windows系统 B:Apache服务器 C:MySQL数据库 D:PHP语言 2. 以下哪个SQL语句是正确的(D) A:insert into u ...
- 【Socket】Java Socket基础编程
Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...
- winform .net2.0的程序如何运行于.net 4.x
约束 最近有一个winform项目,要求: (1)程序能够运行在winxp, win7, win8, win10中 (2)安装尽可能简单,尽量不要安装.net framework.即使要安装也要尽可以 ...
- Linux 下挂在ntfs 硬盘
CentOS 7 下想要挂载NTFS的文件系统该怎么办呢? 我们需要一个NTFS-3G工具,并编译它之后在mount就可以了,就这么简单. 首先要进入官网下载NTFS-3G工具 http://www. ...
- CentOS上安装Hadoop2.7,添加数据节点,运行wordcount
安装hadoop的步骤比较繁琐,但是并不难. 在CentOS上安装Hadoop2.7 1. 安装 CentOS,注:图形界面并无必要 2. 在CentOS里设置静态IP,手工编辑如下4个文件 /etc ...
- 算法设计与分析 上机题Mergesort
#include <iostream>using namespace std; #define N 100 int g_array[N]; //存放输入的数字static int ...