step7--Ubuntu16.04 python2.7重要包 + openBLAS + OpenCV3.1.0

一、安装numpyscipy

相关库简介

·       BLASBasic LinearAlgebra Subprograms)是基础线性代数子程序库,里面拥有大量已经编写好的关于线性代数运算的程序;

·       LAPACKLinear AlgebraPACKage)包含了求解科学与工程计算中最常见的数值线性代数问题,如求解线性方程组、线性最小二乘问题、特征值问题和奇异值问题等;

·       ATLASpython下的一个线性代数库,是基于另外两个线性代数库BLASlapack的;

·       NumPy提供了一个在python中做科学计算的基础库,它重在数值计算,甚至可以说是用于多维数组处理的库;

·       SciPy是基于numpy,提供了一个在python中做科学计算的工具集,也就是说它是更上一个层次的库;

·       Theano则是基于NumPy以及SciPy的一个更高级的用于科学计算的库。

相关库的关系

·       要安装Theano,就需要先安装好numpyscipy

·       要安装numpyscipy,就需要ATLAS

·       要安装ATLAS,就需要安装BLASLAPACK;

相关库的安装顺序

·       安装顺序:BLAS → LAPACK → ATLAS → numpy → scipy → Theano

检查numpyscipy是否通过测试

  • 说明:如果你的numpy和scipy是通过apt-get安装的,那么它们的单元测试可能会通不过!!!(我在安装过程中没有通过测试,scipy出现了Error)(原因是由于apt-get安装在usr/lib中,应该使用pip安装,sudo pip install numpy  安装在usr/local/lib

·       如果numpyscipy不能通过测试,就需要卸载,然后重新按照本文介绍的顺序安装。

# 检查numpy是否通过测试

python -c "import numpy;numpy.test()"

如果numpy通过测试,会出现如下图所示的结果。注意最后一行errors=0 failures=0。如果没有通过测试,需要卸载并重新安装。 
如果scipy通过测试,会出现如下图所示的结果。注意最后一行errors=0 failures=0。如果没有通过测试,需要卸载并重新安装。 

卸载numpyscipy

# 卸载numpy

sudo apt-get remove python-numpy

 

# 卸载scipy

sudo apt-get remove python-scipy

安装各种包

# 安装gfortran,后面编译过程中会用到

sudo apt-get install gfortran

# 安装blas,Ubuntu下对应的是libopenblas,其它操作系统可能需要安装其它版本的blas——这是个OS相关的。

sudo apt-get install libopenblas-dev

# 安装lapackUbuntu下对应的是liblapack-dev,和OS相关。

sudo apt-get install liblapack-dev

# 安装atlasUbuntu下对应的是libatlas-base-dev,和OS相关。

sudo apt-get install libatlas-base-dev

安装numpyscipy

·       使用pip安装numpyscipy

·       安装pip的命令:sudo apt-get installpython-pip

·       注意:一定要在安装完lapack/blas之后,再安装numpyscipy。否则,会出现错误no lapack/blasresources found

·       安装numpyscipy的命令如下所示。

# 安装numpy

sudo pip install numpy

# 测试numpy

# 测试通过才能进行下一步~~

python -c "import numpy;numpy.test()"

 

# 安装scipy

sudo pip install scipy

# 测试scipy

# 测试通过才能进行下一步~~

python -c "import scipy;scipy.test()"

·       Scipy安装一些常用工具

sudo apt-get install -ylibfreetype6-dev libpng12-dev

pip install -Umatplotlib ipython[all] jupyter pandas scikit-image

测试:ipython

二、安装openBLAS

编译安装OpenBlas

·       为什么安装OpenBLAS?因为OpenBLAS的速度比atlas快。

·       安装OpenBLAS

mkdir ~/git

cd ~/git

git clonehttps://github.com/xianyi/OpenBLAS.git

cd OpenBLAS

make FC=gfortran -j$(($(nproc) + 1))

sudo make PREFIX=/usr/local install

将路径添加到LD_LIBRARY_PATH 变量中

echo'exportLD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

三、安装OpenCV3.1.0

首先安装一些必要的依赖库:

[plain] view plain copy

1.  sudo apt-get install build-essential  

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

3.  sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  

进入官网http://opencv.org/releases.html , 选择 3.1.0 版本的 source , 下载 opencv-3.1.0.zip 


解压到你要安装的位置,命令行进入已解压的文件夹 opencv-3.1.0 目录下,创建build文件。

[html] view plain copy

1.  $ unzip opencv-3.1.0.zip  

2.  $ cd opencv-3.1.0  

3.  $ mkdir build  

4.  $ cd build  

5.  $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_VTK=ON .. 

生成的文件在bulid中,而生成的CMakeLists.txt文件在上一级文件中。在配置过程会出现– ICV:Downloading ippicv_linux_20151201.tgz…错误。可以到 ippicv_linux_20151201.tgz (https://download.csdn.net/download/chu_ying/9432287 )下载。

 

将下载的文件替换掉 opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b下的同名文件,同时在opencv-3.1.0目录下的CMakeList.txt 文件的开头加入一行,然后再次cmake即可,如下:

[html] view plain copy

1.  $ cd ~/Downloads/  

2.  $ mv ippicv_linux_20151201.tgz opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/   

3.  $ vim opencv-3.1.0/CMakeLists.txt   

1.    在弹出的文件开头加入一行(注意里面的引号要英文状态下的):

[plain] view plain copy

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")   

2.    然后按esc和:wq保存退出。

[html] view plain copy

    $ cd opencv-3.1.0/build  

    $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_VTK=ON ..  

    $ make –j8      #八核运算  

可能会出现的错误:

错误内容1

gcc-4.9: error trying to exec 'cc1plus': execvp: 

没有那个文件或目录,说明gccg++版本不兼容,解决办法跟gcc版本太高时一样:安装低版本gccg++

sudo apt-get installgcc-4.9 g++-4.9

之后进入/usr/bin:

cd /usr/bin

先删除和gcc5.0关联的gcc:

sudo rm gcc

sudo rm g++

再建个软连接

sudo ln -s gcc-4.9 gcc

sudo ln -s g++-4.9 g++

错误内容2

modules/cudalegacy/src/graphcuts.cpp:120:54: error: 

‘NppiGraphcutState’ has not been declared

typedef NppStatus (*init_func_t)(NppiSize oSize, 

NppiGraphcutState** ppState, Npp8u* pDeviceMem);

这是因为opecv3.0cuda8.0不兼容导致的。解决办法:

修改/opencv/modules/cudalegacy/src/graphcuts.cpp文件内容,如图:

(本机在make -j8 命令编译到 88%时仅仅出现错误2

然后重新编译

[html] view plain copy

1.  $ make –j8      #八核运算:计算性能高时可以采用16核计算  

2.  $ sudo make install  

以上最后两步比较耗时,耐心等待。

安装完成后通过查看 opencv 版本验证是否安装成功:

[html] view plain copy

1.  $ pkg-config --modversion opencv 

结果:3.1.0



结束后,还需要配置一下环境变量:

1  sudo gedit /etc/ld.so.conf.d/opencv.conf(可自行创建)

末尾添加一行/usr/local/lib

sudo ldconfig 

sudo gedit /etc/bash.bashrc 

末尾添加一行

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

 

2 /etc/bash.bashrc中LD_LIBRARY_PATH加入/usr/local/lib

source /etc/bash.bashrc



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值