ubuntu(已经配置了python2+opencv)简易配置python3的opencv:
所达到的效果就是python2与python3都能使用opencv
参考:http://blog.csdn.net/jiandanjinxin/article/details/71438780
https://blog.kevin-brown.com/programming/2014/09/27/building-and-installing-opencv-3.html
1、安装依赖(其中安装numpy是个难点):
sudo apt-get update
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-setuptools python3-dev sudo easy_install3 pip
pip3 install numpy
sudo apt-get install cmake git libgtk2.0-dev
sudo apt install python3-dev libpython3.5-dev python3-numpy
2、编译opencv:
进入opencv源码文件
$ cd ~/opencv
$ mkdir build
$ cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \(编译类型)
-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \(因为默认是python2,编译选项)
-D BUILD_opencv_python3=ON \(编译选项)
-D BUILD_opencv_python2=OFF \(编译选项)
(可选)
-D INSTALL_C_EXAMPLES=OFF \(编译选项)
-D INSTALL_PYTHON_EXAMPLES=ON \(编译选项)
-D BUILD_EXAMPLES=ON \(编译选项)
-D PYTHON3_EXCUTABLE=/usr/bin/python3\(文件路径)
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.5m \(文件路径)
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \(文件路径)
-D PYTHON_NUMPY_PATH=/usr/local/lib/python3.5/dist-packages ..(文件路径)
由于camke涉及多处查找命令,可用python中自带的查找位置的命令:
#PYTHON_INCLUDE_DIR
from distutils.sysconfig import get_python_inc
print(get_python_inc())
#PYTHON_PACKAGES_PATH
from distutils.sysconfig import get_python_lib
print(get_python_lib())
#PYTHON_EXECUTABLE
$(which python3)
#CMAKE_INSTALL_PREFIX
import sys
print(sys.prefix)
#PYTHON_NUMPY_PATH
import numpy
print numpy.__file__
opencv编译指定python3
出现这个问题 删除build重新
Python 3:
-- Interpreter: /home/kevin/.virtualenvs/cv/bin/python (ver 3.5.2)
-- Libraries: NO
-- numpy: NO (Python3 wrappers can not be generated)
-- packages path: lib/python3.5/site-packages
当cmake输出python3的各个路径正确,尤其build for python3时就可
make -j4
之后并没有执行make install
我只是将编译后的unix-install中的*.so文件移动到/usr/local/lib/python3.5/dist-packages中重命名为cv2然后就能使用了!好奇怪
也许是由于之前已经安装了python2以及系统g++的opencv,并且so文件只是相当于python3信息的转换,所以行得通!
熟悉了cmake,ccmake命令的使用,
不过为了防止以后出问题,还是保存一些参考教程
http://singlepig-blog.logdown.com/posts/2014/01/14/opencv-configuring-opencv-paths
http://www.cnblogs.com/xzd1575/p/5555523.html
http://www.afterimage.top/2016/07/ubuntu%E4%B8%8B%E5%A4%9A%E7%89%88%E6%9C%ACopencv%E5%88%87%E6%8D%A2/
https://zh.wikibooks.org/zh-cn/CMake_%E5%85%A5%E9%96%80/%E8%BC%B8%E5%87%BA%E4%BD%8D%E7%BD%AE%E8%88%87%E5%AE%89%E8%A3%9D
http://pinkyjie.com/2010/10/19/ubuntu-opencv-python/
http://zyplot.com/2017/05/13/CV2-install/
http://www.cppblog.com/colorful/archive/2012/05/05/173750.html
ubuntu(已经配置了python2+opencv)简易配置python3的opencv:的更多相关文章
- Opencv环境配置及踩坑
Opencv环境配置及踩坑 1.什么是Opencv OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和[ ...
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决
前提: 1.安装Android Studio(过程略) 2.官网下载OpenCV for Android 网址:http:opencv.org/downloads.html 我下载的是下图的版本 3. ...
- 烂泥:学习ubuntu远程桌面(一):配置远程桌面
本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器目前安装的都是ubuntu 14.04系统,而且由于业务需要,需要使用到ubuntu的远程桌面功能.所以本篇文章都是围绕ubuntu的远程桌面来 ...
- Ubuntu 14.04 关于 TensorFlow 环境的配置
Ubuntu 14.04 关于 TensorFlow 环境的配置 本教程截图于 TensorFlow 官方文档中文版 https://github.com/jikexueyuanwiki/ten ...
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...
- Windows7 32位机上,OpenCV中配置GPU操作步骤
1. 查看本机配置,查看显卡类型是否支持NVIDIA GPU: 2. 从http://www.nvidia.cn/Download/index.aspx?lang=cn下载最新驱动并安装: 3. ...
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
下载安装软件 下载 Opencv for Windows 最新版本,本文是 Opencv 2.4.8.双击后会出现解压提示,实际上就是“安装”了,路径填写为 D:/Program Files,然后确定 ...
- 【QT相关】QT+opencv环境配置
在qt msvc2010版软件中使用opencv2.4.9进行库函数配置.仅适用于windows下. INCLUDEPATH += $$PWD/../../../opencv/build/includ ...
随机推荐
- js中的 return false;
总的来说return false 的作用就是阻止事件的默认行为 1. function check() { if(form.title.value=="") { alert(&qu ...
- Eclipse3.4以上使用dropins的插件安装方式
Eclipse3.4以上版本支持使用dropins的插件安装方式,使用方便,共有四种使用方法: 1. 最简单的,直接将jar包放到dropins目录下eclipse/ dropins/ 2. 传 ...
- ajax请求web容器控制超时
1.项目用到超时控制,针对ajax请求超时,可以参照如下解决方案 tomcat容器 web.xml 中配置 <session-config> <session-timeout> ...
- HDU 1009:FatMouse' Trade(简单贪心)
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Rabbitmq消息队列(二) Hello World! 模拟简单发送接收
1.简介 RabbitMQ是消息代理:它接受和转发消息.你可以把它当作一个邮局:当你把你要邮寄的邮件放在信箱里时,你可以肯定Postman先生最终会把邮件送到你的收件人那里.在这个比喻中,Rabbit ...
- 傻瓜方法求集合的全部子集问题(java版)
给定随意长度的一个集合.用一个数组表示,如{"a", "b","c"},求它的全部子集.结果是{ {a}, {b}, {c}, {a,b}, ...
- MySQL(8)--Cluster 7.4 rpm centos7
还没来得及写.我就知道一个月完毕不了,暂时添加的工作总是拖后腿. .. MySQL集群 docker下安装MySQL Cluster报错了.是我image的包少了perl.老实装吧.image又小不了 ...
- C++语言基础(11)-多态
一.产生背景 先看下面的例子: #include <iostream> using namespace std; //基类People class People{ public: Peop ...
- 前端js文件添加版本号
客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件 ,刷性缓存的作用.大家可能有时候发现修改了样式或者js,刷新的时候不变,就 ...
- JVM物理结构和在内存中的组织结构
对于JVM自身的物理结构,我们可以从下图鸟瞰一下: JVM内存组成结构 JVM栈由堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可以 ...