所达到的效果就是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

最新文章

  1. 前端开发面试题收集(html部分)
  2. [UWP]涨姿势UWP源码——极简的RSS阅读器
  3. ThinkCMF-如何收藏
  4. Java--剑指offer(9)
  5. java编译做了哪些事?
  6. converntion
  7. 【CocoaPods】配置CocoaPods前 - 本地安装好Ruby环境
  8. js 全选 反选
  9. 网站HTTP请求过程解析
  10. myeclipse和eclipse安装Java反编译插件
  11. php优化技巧
  12. 树形dp练习
  13. 记一个问题的AC
  14. 在ubuntu server 上记录和查看cron日志
  15. linux 压缩解压打包工具大集合
  16. 各种缓存(Memcached、Redis、RabbitMQ、SQLlchemy)
  17. MPI 在Windows10 上安装,使用VS2013编译生成可执行程序
  18. JavaIO再回顾
  19. 禁止输入emoji表情
  20. python笔记六:进程与线程

热门文章

  1. SqlServer+Topshelf+Quartznet做集群,定时任务分布式处理
  2. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(二)—— easyui的简单实用
  3. docker run
  4. 树莓派学习笔记——apt方式安装opencv
  5. javascript (function() { /* code */ })() 自执行函数
  6. 217. Contains Duplicate【easy】
  7. int 与 string::length()
  8. linux grep sed awk
  9. diamond源码阅读-循环探测配置信息是否变化rotateCheckConfigInfo
  10. hadoop2.4.1伪分布模式部署