为了写论文,开始利用OpenCV进行图像分析,为了尽快完成工作,决定用Python来开发。用apt-get安装完成了各种openCV和python后发现,安装上的openCV版本太低,所需要的几个函数里面没有,只有最新的3.0里才有,于是决定安装openCV3.0。以下为此次安装过程的一个记录。
(1)初始环境。目前机器上已经安装好了OpenCV的旧版本,python2.7以及Python-OpenCV。可以用,但是Python下缺少很多新版本OpenCV的API,所以打算装一个最新版本的OpenCV。
(2)最新版本的OpenCV是3.0,必须要源码编辑安装。下载下来最新的源文件解压缩后进行编译。
(3)在源文件目录里新建一个release目录,进入该目录。
(4)执行CMake命令:cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
(5)执行Make命令:make
(6)漫长的等待。
(7)一堆成功和警告的信息之后,编译链接成功!
(8)安装aptitude。这是一个图形界面的apt-get,打算利用它来卸载之前安装的各个版本的OpenCV。
(9)把所有与libopencv有关的包都给删掉了,包括lib_python_opencv。
(10)安装编译好的OpenCV3.0:sudo make install
(11)挖槽,出现了错误,肯定是刚才删掉了某些不该删的东西(例如编译OpenCV需要的一些头文件,库什么的),还好刚才编译好的东西还在,在release目录下寻找lib目录里的cv2.so,这个是python需要的,将其拷贝到python的库目录里。一般情况下是在“/usr/local/lib/python2.7/dist-packages”里。
(12)赶紧的打开python,敲入"import cv2"看看行不?
(13)行!表明Python-openCV是可以运行的,终于可以愉快的在Ubuntu下编写Python程序了。
(14)还是要想办法把openCV装上才行,回到刚才那个release目录下,执行make clean,make命令,居然又开始编译了,漫长的等待(等等,刚才是不是因为su的原因导致无法编译?)。
(15)还是出错了。不急,慢慢补救。根据错误提示安装缺少的包:
sudo apt-get install libopenexr-dev
sudo apt-get install libjasper-dev
(16)继续make,等待……
(17)成功。然后安装:
sudo make install
(18) 成功。测试工作就不做了,因为现在还没有这个需要。
总结:
Python是如何调用openCV的呢?因为上面的编译过程得到了一个cv2.so,这个文件就是给python2.7使用的,只要把这个文件拷贝到python的lib目录里(通常是dist-packages这个目录)就可以了。以后openCV升级了,只要更新这一个文件就可以,非常方便。