手把手教你,在Ubuntu上安装OpenCV 3.0 和 Python 2.7+

接触机器视觉的学者,难免要安装大名鼎鼎的OpenCV库,而目前Ubuntu + OpenCV 3.0 + Python 2.7+ 又是很普遍的机器视觉选型.

今天我们就手把手讲一下如何在Ubuntu上安装OpenCV 3.0 和 Python 2.7+ .

注意:如果一下一些步骤如果你有信息已经安装过,可以跳过!

步骤1:

打开终端窗口,更新apt-get包管理器,升级所有预安装包:

$ sudo apt-get update
$ sudo apt-get upgrade

步骤 2:

安装我们的开发工具和包:

$ sudo apt-get install build-essential cmake git pkg-config

步骤 3:

OpenCV 需要从磁盘中加载不同格式的图片,如
JPEG,TIFF, PNG等等.所以我们需要安装我们的图像I/O工具包:

$ sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev

步骤 4:

另外,OpenCV是用GTK开发包来显示GUI, 即用户图形界面,所以我们要安装这个开发包:

$ sudo apt-get install libgtk2.0-dev

步骤 5:

OpenCV还必须处理视频流和单个帧,下面就是我们需要的安装包:

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

步骤 6:

OpenCV还包含一些内部优化工具:

$ sudo apt-get install libatlas-base-dev gfortran

步骤 7:

安装python包管理器pip:

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py

步骤 8:

安装virtualenv和virtualenvwrapper. 用来分割python虚拟环境. 这不是必须的, 但是强烈推荐:

$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip

现在我们有了virtualenv和virtualenvwrapper, 我们要更新我们的~/.bashrc  文件:

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

为了使~/.bashrc 文件生效 , 你可以用以下这些方法的其中之一(1) 注销后重新登录, (2)关闭终端开一个新终端, (3)直接使得~/.bashrc文件在当前生效:

$ source ~/.bashrc

最后我们生成名字叫cv的虚拟开发环境:

$ mkvirtualenv cv

步骤 9:

安装python开发工具:

$ sudo apt-get install python2.7-dev

按照numpy:

$ pip install numpy

步骤 10:

预备环境终于都搞定啦, 我们进入正题, 按照OpenCV 3.0.0:

$ cd ~
$ git clone https://github.com/Itseez/opencv.git
$ cd opencv
$ git checkout 3.0.0

你也可以在这里使用3.1.0, 但是别忘了去OpenCV.org 官网看看有什么变动.

有一些牛叉的算法如SIFT, SURF, 等等 在opencv_contrib里面, 所以我们要安装它来支持OpenCV:

$ cd ~
$ git clone https://github.com/Itseez/opencv_contrib.git
$ cd opencv_contrib
$ git checkout 3.0.0

 注意: opencv_contrib和OpenCV版本要一致

是时候build OpenCV辣:

$ 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 3.1.0, 你需要设置DINSTALL_C_EXAMPLES=OFF 

最后, 编译! :

$ make -j4

这是从网上摘的编译效果图:

Figure 1: OpenCV 3.0 with Python 2.7+ support compiling on my Ubuntu 14.04 system.
Figure 1: OpenCV 3.0 with Python 2.7+ support compiling on my Ubuntu 14.04 system.

编译没问题的话, 就可以安装了:

$ sudo make install
$ sudo ldconfig

步骤 11:

如果安装无误, OpenCV现在已经安装在/usr/local/lib/python2.7/sitepackages中了. 但是考虑到我们的虚拟环境cv还没有OpenCV, 我们需要建立一个软链:

$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

步骤 12:

恭喜 ! 你完成了在Ubuntu上安装OpenCV 3.0 和 Python 2.7+

所有剩下的就是验证一下啦:

$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.0.0'

步骤 13:

是时候写一段小代码来使用一下OpenCV库了. 我们要写一段代码识别下图games.jpg中红色的游戏卡:

games

代码如下:

# import the necessary packages
import numpy as np
import cv2
 
# load the games image
image = cv2.imread("games.jpg")
 
# find the red color game in the image
upper = np.array([65, 65, 255])
lower = np.array([0, 0, 200])
mask = cv2.inRange(image, lower, upper)
 
# find contours in the masked image and keep the largest one
(_, cnts, _) = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,
  cv2.CHAIN_APPROX_SIMPLE)
c = max(cnts, key=cv2.contourArea)
 
# approximate the contour
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.05 * peri, True)
 
# draw a green bounding box surrounding the red game
cv2.drawContours(image, [approx], -1, (0, 255, 0), 4)
cv2.imshow("Image", image)
cv2.waitKey(0)

输出如下图:

ubuntu_found_game-1024x819

好了这就搞定啦, 如果喜欢请关注博客并打赏哦~

 

参考文献:

http://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu/

 

发布者

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

《手把手教你,在Ubuntu上安装OpenCV 3.0 和 Python 2.7+》上有7条评论

  1. 因为刚刚开始接触还不太懂,请问一下,按照这个安装完,可以用c++写吗?还是只能使用python?

  2. 建议第八步,改成 sudo apt-get install python-pip
    不知道为什么,你写的那种我运行不了

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注