由于项目需要进行图像处理而且最近学习了python语言,所以需要在cubieboard4上安装python和opencv。安装过程其实并不难,重点是各linux发行版上安装这两个家伙其实都差不多,所以本文的价值并不大,权当作为备忘好了。
使用的系统是官方制作的Ubuntu-linaro-desktop,将板子进行联网后,打开命令行,步骤如下:
1.先更新和升级已安装的软件包
apt
-
get update
apt
-
get upgrade
2.安装python的工具包,这里同时安装python2和python3的,因为opencv3.0现在开始支持python3.X版本了,为了让两个版本都能使用opencv,所以在编译opencv前要配置好各python版本:
apt-get install python python-dev python-pip
apt-getinstall python3 python3-dev python-pip3
其中*dev是开发包,而pip是python的包管理工具,可以很方便地安装第三方库。
3.配置python的pip源。安装完pip后会再home目录下有一个.pip目录,目录里有一个pip.conf文件(若无则添加之),用来配置pip的参数。因为pip的源默认是pypi的,有时候慢得不行,所以将其修改为国内镜像,文件中写入:
[global]
index-url = http://pypi.v2ex.com/simple/
4.安装numpy。opencv在python中将图像存储为numpy中的数组,所以需要安装numpy。使用pip安装,python2使用pip,python3则使用pip3。
pip install numpy
pip3 install numpy
5.这时python就配置好了。现在开始安装opencv编译需要的工具和库。
apt-get install build-essential cmake pkg-config
apt-get install libgtk2.0-dev
apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev
apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
apt-get install libatlas-base-dev gfortran
6.安装完成后需要下载opencv源码。直接使用git命令将opencv的源码clone下来,到时有什么重要更新,可以直接使用git来获取再重新编译,轻松且愉快。
git clone git://github.com/Itseez/opencv
7.进入opencv目录,新建build目录再进入build目录
cd opencv
mkdir build
cd build
8.使用cmake生成makefile文件
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..
(注意,以上是一条命令)
9.生成makefile文件完毕,执行make,这里我的板子花了约一个半小时编译,速度还是相当快的:
make
10.编译完成,安装:
make install
ldconfig
到这里,python和opencv就成功安装到cubieboard4上面了,打开python2或python3编译器,import cv2发现导入成功,dir(cv2)后发现整个屏幕刷的一下全是密密麻麻的属性。为了确认能够使用,我新建了一个目录,在目录下装入一个arduino nano的引脚图片,并写了一段简单的python脚本来进行图片的轮廓获取:
#!/usr/bin/python2.7
import cv2
img=cv2.imread('nano.jpg')
cv2.namedWindow('show')
gray=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
blur = cv2.GaussianBlur(gray,(3,3),0)
edges = cv2.Canny(blur,100,200)
cv2.imshow('show',edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
执行效果如下:
将脚本第一行的#!/usr/bin/python2.7改为#!/usr/bin/python3.4并执行,其效果一致,说明当前脚本中opencv在python2和python3中都能运行良好,看来opencv3.0真的对python3有一定的支持,只是不知道是否完美支持,有待考证。