为什么需要源码安装?

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. 在使用html5的video标签播放视频时为何只有声音却没有图像

    在使用html5的video标签播放视频时为何只有声音却没有图像? 答:使用格式化工厂转个编码就行了,MP4有3种编码,mpg4(xdiv),,mpg4(xvid),avc(h264)转换成H264编 ...

  2. 2018.09.20 atcoder 1D Reversi(模拟)

    传送门 考虑每次摆石头都会消去最外层的一个连续颜色串. 所以只用统计一下有多少段颜色即可. 代码: #include<bits/stdc++.h> using namespace std; ...

  3. String、StringBuffer与StringBuilder之间区别(转)

    最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...

  4. 【转】Paxos算法3-实现探讨

    ——转自:{老码农的专栏} 前两篇Paxos算法的讨论,让我们对paxos算法的理论形成过程有了大概的了解,但距离其成为一个可执行的算法程序还有很长的路要走,原因是很多的细节和错误未被考虑.Googl ...

  5. 测试-LoadRunner

    1录脚本 设置解析方式,html形式,会精炼成一个函数,此时找有用的url,写出函数:url方式,函数比较多. 参数化 两参数成对时,在脚本处选成对. 加上进程,加上返回值判断. 最后一段接口url, ...

  6. MODIS产品分析和数据处理

    ENVI+IDL 17种MODIS产品的功能解释 https://wenku.baidu.com/view/6fd329dcf524ccbff0218440.html ENVI读取MODIS数据大致步 ...

  7. Scala中()与{}

    Scala中()与{}的关系 在Scala中有些时候()和{}是可以相互替换的,但是如果不弄清楚到底什么时候该用(),什么时候该用{},什么时候二者可以相互替换,那么在写代码的时候难免为出错,并且自己 ...

  8. EBS FORM 编译

    http://www.cnblogs.com/quanweiru/archive/2013/01/01/2841574.html EBS R11============================ ...

  9. 动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)

    动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数. 方法是:用 LoadLibrary 函数加载动态链接库到内存,用 Ge ...

  10. Android 一个应用多个桌面图标

    理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER: 在Android 应用程序开发过程中,Activity入口会增加: a ...