为什么需要源码安装?

1. 对 Python 版的 OpenCV,Ubuntu 有两种安装方式:

  • 源码安装:官网(https://opencv.org/releases.html)下载源代码,在机器上编译安装
  • 只库文件安装:安装由 Ubuntu 社区人员已经编译好的库文件
pip3 install opencv-python " opencv-contrib 是 opencv 的扩充

注: 库文件(cv2.so)安装路径:/usr/local/lib/python3.5/dist-packages/cv2.so

2. 使用源码安装由以下几个好处:

  • 可以使用较新版本;
  • 可以查看源代码;
  • 可以调整一些编译选项,匹配编译环境;
  • 可以使用一些额外的功能

安装

1. 安装 OpenCV 依赖项

sudo apt-get install build-essential libgtk2.-dev libvtk5-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev

2. 官网(https://opencv.org/releases.html)下载源代码并解压

3. 进入解压后的目录,创建 build 目录,目的是将编译文件放入 build 目录,避免与源码混在一起

cd ~/opencv-4.0.
mkdir build
cd build

4. 用 cmake 编译安装(指定编译选项)

cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=~/local \ “ 修改路径
-D PYTHON_DEFAULT_EXECUTABLE=$(which python3) \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D WITH_QT=OFF \
-D WITH_V4L=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-Wl,-Bsymbolic .. " 注意末尾有 ..,表示对上一级目录进行编译 make -j8 " 调用8个线程进行编译
sudo make install

5. 测试

python3

>>> import cv2

若无错误提示,则编译安装成功

Ubuntu16.04 / OpenCV / Python 源码安装的更多相关文章

  1. Ubuntu16.04系统Tensorflow源码安装

    最近学习Tensorflow,记录一下安装过程.目前安装的是CPU版的 1.下载tensorflow源码 tensorflow是个开源库,在github上有源码,直接在上面下载.下载地址:https: ...

  2. python 源码安装

    1)下载python源码包 http://mirrors.sohu.com/python/3.5.2/Python-3.5.2.tgz 2)安装相关依赖  yum install zlib-devel ...

  3. python源码安装的包的卸载

    python setup.py install安装的包如何卸载 在使用源码安装的过程中,记录安装文件细节,如: python setup.py install --record log 这时所有的安装 ...

  4. 解决 Ubuntu16.04 + opencv4.1 源码编译错误 Makefile:160: recipe for target 'all' failed

    最近源码编译 opencv,出现下面的错误 [ %] Built target opencv_dnn Makefile:: recipe for target 'all' failed google ...

  5. python源码安装

    # mkdir /apps/Python- 解压源码包,进入源码包 [root@LB_81 Python-]# ls aclocal.m4 configure.ac install-sh Makefi ...

  6. Ubuntu 14.04下从源码安装qt4.x

    转自:http://www.cnblogs.com/crazywangzx/p/3505293.html 1.到官网http://qt-project.org/downloads或者ftp://ftp ...

  7. Ubuntu16.04 下 python 3.6 安装以及各版本python切换(同时解决各种依赖缺失)

    有些博客给出了从源代码通过./configure.make.sudo make 会导致安装玩之后出现各种依赖缺失的问题,如_sqlite3._bz2 等问题. 当然也有很多帖子给出了从系统自带的pyt ...

  8. linux中Python源码安装和配置

    安装 首先获取安装包,此处版本为3.7 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 解压 tar xvf Python- ...

  9. Ubuntu16.04编译cmake源码

    编译版本:cmake-3.8.0-rc2 为了能够编译出ccmake和cmake-gui,首先需要安装libncurses5-dev sudo apt install libncurses5-dev ...

随机推荐

  1. 1024 Hello World

    哈哈,原来今天是程序员的节日啊,快乐咯,可是今天好冷好冷~~

  2. js基础学习笔记(四)

    4.1 什么是数组 我们知道变量用来存储数据,一个变量只能存储一个内容,存储多个值时,就需要用到数组. 数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数 ...

  3. Node.js使用MySQL的连接池

    使用Nodejs+MySQL肯定比PHP和MySQL的组合更适合做服务器端的开发. 使用Nodejs你会从他的异步行为中获益良多.比如,提升性能,你无须在从已有的MySQL数据库迁移到其他的NoSQL ...

  4. Airplace平台

    Demo: 左上角:(0, 0)开始导航,手机终端上实时在地图上当前所在显示,当前点以绿色点显示,轨迹点以红色显示. 系统架构:基于移动手机的以网络为辅助的架构.特点:低头顶交流,用户隐私和安全 &g ...

  5. 如何更新world文档的目录

    在想要设置目录的文档页,右键 -> 更新域, 或者在想要设置目录的文档页,按下 F9 即可 拓展: 在目录文档页  ,按Ctrl 并且单击鼠标可以跟踪目标连接 如果内容对您有所帮助,请打赏--- ...

  6. 20155320 2016-2017-2 《Java程序设计》第7周学习总结

    20155320 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 时间与日期 认识时间与日期 时间的度量 GMT(Greenwich Mean Time)时间 ...

  7. github/gitlab添加多个ssh key

    系统:macOS X 由于公司的代码管理放在了gitlab.com上,所以添加了一个ssh key, 生成ssh key的代码如下: 1.$ ssh-keygen -t rsa -C “yourema ...

  8. jquery 方法学习

    遍历 .add():将元素添加到jquery对象 argument:selector, element, html, jqueryObject $('li').add('p').css('backgr ...

  9. Android-Android/APP-理解

    Android 1.Google Android 给出的官方Android架构图就是大家都知道的四层,第一层是应用层(就是很多能够看得到的应用),第二层是应用框架层(为application提 供各种 ...

  10. 通过Spring Session实现新一代的Session管理

    长期以来,session管理就是企业级Java中的一部分,以致于我们潜意识就认为它是已经解决的问题,在最近的记忆中,我们没有看到这个领域有很大的革新. 但是,现代的趋势是微服务以及可水平扩展的原生云应 ...