好吧,这将是一个冗长的答案,所以让我们开始吧:
升级所有预安装的软件包:
$ sudo apt-get update
$ sudo apt-get upgrade
安装用于编译OpenCV 3.0的开发人员工具:
$ sudo apt-get install build-essential cmake git pkg-config
安装用于从磁盘读取各种图像和视频格式的库和软件包:
$ sudo apt-get install libjpeg8-dev libtiff5-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
安装GTK,以便我们可以使用OpenCV的GUI功能:
$ sudo apt-get install libgtk2.0-dev
安装用于优化OpenCV内部各种功能的软件包,例如矩阵操作:
$ sudo apt-get install libatlas-base-dev gfortran
让我们下载为Python 3安装的Python包管理器pip:
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py
让我们使用全新的pip3安装程序来设置virtualenv和virtualenvwrapper:
$ sudo pip3 install virtualenv virtualenvwrapper
现在,我们可以更新?/ .bashrc文件(位于文件底部):
# virtualenv and virtualenvwrapper
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
$ source ~/.bashrc
$ mkvirtualenv cv
我们需要安装Python 3.4+标头和开发文件:
$ sudo apt-get install python3.4-dev
OpenCV将图像表示为NumPy数组,因此我们需要将NumPy安装到我们的简历虚拟环境中:
$ pip install numpy
$ cd ~
$ git clone https://github.com/opencv/opencv.git
$ cd opencv
$ git checkout 3.0.0
$ cd ~
$ git clone https://github.com/opencv/opencv_contrib.git
$ cd opencv_contrib
$ git checkout 3.0.0
是时候设置构建了:
$ cd ~/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
让我们开始OpenCV编译过程:
$ make -j4
假设OpenCV 3.0编译没有错误,您现在可以在系统上安装它:
$ sudo make install
$ sudo ldconfig
如果您已完成此步骤,则现在应在中安装OpenCV 3.0 /usr/local/lib/python3.4/site-packages/
。
在这里,我们的OpenCV绑定以以下名称存储 cv2.cpython-34m.so
但是,为了在cv虚拟环境中使用OpenCV 3.0,我们首先需要将OpenCV符号链接到cv环境的site- packages目录中,如下所示:(请务必注意cv2.cpython-34m.so
)
$ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/
$ ln -s /usr/local/lib/python3.4/site-packages/cv2.cpython-34m.so cv2.so
请注意,我是如何将名称从cv2.cpython-34m.so更改为cv2.so的-这是Python可以使用名称cv2导入我们的OpenCV绑定的方法。
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.0.0'
希望能有所帮助。另外,在他的职位上也要感谢Adrian Rosebrock 。它对我来说是一种魅力。