Ubuntu 16.04LTS版本,安装OpenCV3.0+环境。
转的文章,亲测可用!
在这里介绍怎么在Ubuntu系统上安装OpenCV和Python。在安装完成后,写一个简单的Python脚本,测试OpenCV是否安装成功。
一、 更新系统中的安装包
$ sudo apt-get update
$ sudo apt-get upgrade
二、 安装基本的开发工具
$ sudo apt-get install build-essential cmake git pkg-config
三、 安装图像IO包
$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
四、 安装GTK图像开发包
现在我们已经可以加载硬盘中的图片了,但是我们怎么显示呢?答案是使用GTK图形开发库:OpenCV的highgui模块的图形用户接口依赖GTK。
$ sudo apt-get install libgtk2.0-dev
五、 安装视频解码器
我们可以加载图片了,但是视频呢。我们需要处理视频流并分离出单独的帧,下面安装各种视频解码器:
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
六、安装OpenCV优化库
这些库可以优化OpenCV的某些功能
$ sudo apt-get install libatlas-base-dev gfortran
七、安装虚拟环境
安装 virtualenv 和 virtualenvwrapper(虚拟环境)。这两个包允许我们为每个项目创建分离的Python环境。这两个包不是必须的,但是我建议你安装。使用虚拟环境不用担心把开发环境整乱。
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip
编辑更新 ~/.bashrc 文件,在文件中加入:
# virtualenv and virtualenvwrapper
$ export WORKON_HOME=$HOME/.virtualenvs
$ source /usr/local/bin/virtualenvwrapper.sh
为了使用更改生效,刷新.bashrc,或重启终端:
$ source ~/.bashrc
我们创建一个叫cv的Python虚拟环境。把和OpenCV相关的库放到cv里:
$ mkvirtualenv cv
你会看到在命令行提示符前有(cv),这表示你正在使用cv这个虚拟环境。
八、 安装Python2.7和numpy
九、 配置OpenCV
Python环境设置完毕,现在我们来配置OpenCV。从github下载OpenCV源码:
$ cd ~
$ git clone https://github.com/Itseez/opencv.git
$ cd opencv
$ git checkout 3.0.0
下载 opencv_contrib(OpenCV 3.0的一些新特性,包括文字识别、SIFT, SURF….):
$ cd ~
$ git clone https://github.com/Itseez/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
你可以把4替换为你cpu的核心数。
下面是正在编译的样子:
假设编译过程没有错误,我们就可以把OpenCV安装到系统中了:
$ sudo make install
$ sudo ldconfig
十、 将python安装到cv环境里
OpenCV Python模块应该安装了 /usr/local/lib/python2.7/site–packages。
把库链接到cv虚拟环境中:
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
十一、 查看OpenCV版本
到这OpenCV已经安装完成;查看OpenCV版本:
(cv)tian@tian-VirtualBox:~$ workon cv
(cv)tian@tian-VirtualBox:~$ python
Python 2.7.6 (default, JUN 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.0.0'
先进入虚拟环境,再查看。
十二、
用Python脚本识别图片的红色游戏卡:
find_red_game.py:
# -*- coding:utf-8 -*-
# 导入使用的包
import numpy as np
import cv2
# 加载图片
image = cv2.imread("gamecards.jpg")
# 在图片中找到红色的游戏卡
upper = np.array([65, 65, 255])
lower = np.array([0, 0, 200])
mask = cv2.inRange(image, lower, upper)
# 找到轮廓并保留最大的
(_, cnts, _) = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
c = max(cnts, key = cv2.contourArea)
# 轮廓近似
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.05*peri, True)
# 把红色卡用绿框框住
cv2.drawContours(image, [approx], -1, (0, 255, 0), 4)
cv2.imshow("Image", image)
cv2.waitKey(0)
执行结果:
大功告成!这就搭配好环境啦~