闯关记简介
由于近期项目需要完成一个图像分析的任务,而以前也对OpenCV有所耳闻,但没有技术和产品上的需求,所以虽然想找时间玩玩,但苦于时间的紧张,一直没有真正去touch,这次打算正好利用这次机会做深入一点的研究。
实验环境
Ubuntu 16.04 64 Bits
Python2.7
OpenCV 3.1.0
那么,我们就愉快的开始这段奇幻之旅吧!
安装OpenCV的依赖
更新 apt-get
sudo apt-get update
sudo apt-get upgrade
更新一些必要的第三方开发者工具
sudo apt-get install build-essential cmake pkg-config
做图像处理,图像I/O相关的库必不可少
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
在带X-Window的系统中OpenCV用到的 highgui 所需的依赖
sudo apt-get install libgtk-3-dev
OpenCV矩阵计算算法优化所用到的库
sudo apt-get install libatlas-base-dev gfortran
Python语言绑定所需要的开发包
sudo apt-get install python2.7-dev python3.5-dev
下载OpenCV源码包
OpenCV 3.1.0
cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip opencv.zip
OpenCV 3.1.0 Contribution版也会用到
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
unzip opencv_contrib.zip
建立Python虚拟环境,以隔离对其他环境的影响
获取 pip 模块
cd ~
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
安装 virtualenv
sudo pip install virtualenv
sudo rm -rf ~/get-pip.py ~/.cache/pip
创建Python虚拟环境
mkdir ~/.virtualenvs
cd ~/.virtualenvs
virtualenv cv -p python2
安装 numpy 模块
这里比较坑,因为国内网络原因,下载了很多遍都下不下来,考虑过以下几种方法解决,只有最后一种方法对我来说work:
使用国外VPN,我使用的是日本和韩国的VPN,速度会快一些,但是几次都是在最后一点快成功的时候失败了……
使用douban的源,没办法,直接报错……
不直接使用“pip install”,而是先wget下whl包,然后在“pip install”这个whl包
source ~/.virtualenvs/cv/bin/python
wget https://pypi.python.org/packages/5e/d5/3433e015f3e4a1f309dbb110e8557947f68887fe9b8438d50a4b7790a954/numpy-1.11.2-cp27-cp27mu-manylinux1_x86_64.whl#md5=fa62a11922a9e0776963508fb5254d3d
pip install numpy-1.11.2-cp27-cp27mu-manylinux1_x86_64.whl
编译OpenCV库
好啦,前面的准备工作都做好了,接下来要开始编译OpenCV库!
cd ~/opencv-3.1.0/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..
毕竟在前面已经耗费了很多精力,到这里应该很快就能结束战斗了,但是……
还是太天真了!
在下载“ippicv_linux_20151201.tgz”包的时候,有卡住了,这个30+M的包就是下不下来……果断找资料,原来可以先手动下载这个包,然后在重新开始编译,这样就可以顺序进行下去了。
cp ippicv_linux_20151201.tgz ~/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..
make -j2 # 2 stand for the cpu number
sudo make install
sudo ldconfig
编译结束,检查编译是否成功
ls -l /usr/local/lib/python2.7/site-packages/ | grep cv2.so
完成OpenCV Python语言绑定
创建软连接到虚拟环境
cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
测试Python的OpenCV模块
python
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>
Now everything done, get ready to roll!
Refer
注:本文属原创,码字辛苦,未经同意,请勿转载,最后感谢阅读!——小杰控
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。