Ubuntu16.04/树莓派Python3+opencv配置教程(分享)


Posted in Python onApril 02, 2018

无论是Windows、Linux、还是树莓派 。配置python3的opencv环境都是让人头大的一件事情,尤其是许多人用pip安装以后,发现opencv虽然装上了,但是却装在了系统原生的python2下。

笔者也是经历过很多次失败之后,才安装成功。

本文采用编译的方法配置opencv,每一步都有ubuntu和树莓派的分别配置,由于两个系统极其相似(可以说是基本一样),所以并在一文详解。

一般来说,只要按照步骤去安装配置,就不会出错。废话不多说,开始表演!

step1:准备工作

1.ubuntu

安装前的准备工作:

1.1.对Ubuntu apt-get仓库进行更新

sudo apt-get update && sudo apt-get upgrade

1.2.安装必要的python插件及一些环境

sudo apt-get install python3-setuptools python3-dev -y

1.3.安装pip

sudo easy_install3 pip

1.4.对pip进行的更新(非必要)

pip install --upgrade pip

1.5.安装numpy包

pip install numpy

一些通用的包:

1.6.安装build-essential

sudo apt-get install build-essential -y

1.7.其他的一些开发用包

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y

2.树莓派

更新树莓派的系统与内核

2.1 sudo apt-get update

2.2 sudo apt-get upgrade

2.3 sudo rpi-update

更新内核时可能会报“No space left on device”错误,这是因为储存空间不足,最好在更新前检查内存使用(使用free命令即可)

step2:开始安装opencv

ubuntu/树莓派通用

1、首先,你要找一个合适的地方存放opencv的安装包,我选择的路径是~/Download/opencv

2、进入安装路径,并下载安装包

cd ~/Download/opencv
wget https://github.com/Itseez/opencv/archive/3.0.0.zip

3、下载完成后,需要创建编译后文件存放的路径:

unzip 3.0.0.zip && cd opencv-3.0.0
mkdir build && cd build

4、接下来一步,要小心小心按照本地路径来配置,在build目录下执行如下命令:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local
PYTHON3_EXECUTABLE=/usr/bin/python3
PYTHON_INCLUDE_DIR=/usr/include/python3.4
PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so
PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.4/dist-packages/numpy/core/include ..

注意这里所有的是一行命令,每一个路径都要确保存在,不要忘记最后的两个点,大多时候树莓派和ubuntu在PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so这个路径上会有不同,在树莓派中,cd到/usr/lib/目录下,找到一个目录下,存在libpython3.4m.so,(大不了一个一个找),找到了就记住路径替换即可。

这一步,主要是找到文件,比如找到python3.4 找到libpython3.4m.so 找到numpy/core/include 的路径,各自对应替换即可

5、最后执行安装命令:

make && sudo make install

记住是在build目录下执行,此步安装时间较长,可以先去看看opencv的入门教程神马的

6、如果你之前的步骤都完成了,那么恭喜你,开始验证吧

import cv2
>>> print(cv2.__version__)
... opencv-3.0.0

以上这篇Ubuntu16.04/树莓派Python3+opencv配置教程(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python与Java间Socket通信实例代码
Mar 06 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
Python内存读写操作示例
Jul 18 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
python算法与数据结构之冒泡排序实例详解
Jun 22 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
pytorch 输出中间层特征的实例
Aug 17 Python
Python中Subprocess的不同函数解析
Dec 10 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
Apr 22 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 #Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 #Python
Window10+Python3.5安装opencv的教程推荐
Apr 02 #Python
Python浅复制中对象生存周期实例分析
Apr 02 #Python
python基础教程项目五之虚拟茶话会
Apr 02 #Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 #Python
python基础教程项目四之新闻聚合
Apr 02 #Python
You might like
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
用js解决数字不能换行问题
2010/08/10 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
python 获取et和excel的版本号
2009/04/09 Python
介绍Python中内置的itertools模块
2015/04/29 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
分布式数据库需要考虑哪些问题
2013/12/08 面试题
工作中的自我评价如何写好
2013/10/28 职场文书
大学毕业通用个人的求职信
2013/12/08 职场文书
大学生党员承诺书
2014/05/20 职场文书
法律专业自荐信
2014/06/03 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android