环境
系统:Ubuntu 14.04 x64
简介
OpenCV,英文全称Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
官方主页:http://opencv.org/
安装包
下载链接:http://opencv.org/downloads.html
安装包:opencv-2.4.10.zip
请不要下载opencv2.3.1, 会报ffmpeg的错误。 另外, 最新版的opencv3 和opencv2 架构不同。 如果大家用opencv2用的顺手, 先不要升级opencv3了。
安装
安装编译opencv的依赖包,一个一个安装
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavformat-dev
sudo apt-get install libjpeg62-dev
sudo apt-get install libtiff5
sudo apt-get install libtiff5-dev
sudo apt-get install cmake
sudo apt-get install cmake-qt-gui
sudo apt-get install libswscale-dev
sudo apt-get install libjasper-dev
配置opencv,在这里使用cmake-gui进行配置,使用cmake直接配置会报错,后面会介绍。
cd opencv_dir
mkdir build
cd build
cmake-gui ..
出现下面的界面,更改设置,把WITH-CUDA和BUILD_opencv_gpu选项去掉打钩,然后依次点Configure和Generate按钮生成Configure文件。
编译安装,这样就安装成功了。
make
sudo make install
环境变量
安装成功后还需要设置opencv的环境变量
打开文件
sudo gedit /etc/profile ##个人比较喜欢把环境变量放在/etc/profile里面,'~/.bashrc'一样
在文件最后添加
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
执行下列命令, 使环境变量立即生效
source /etc/profile
lib库路径
打开文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
一般是新建文件,opencv的库一般安装在’/usr/local/lib’文件夹下,在文件内添加
/usr/local/lib
执行下列命令使之立刻生效
sudo ldconfig
经过上面的流程,这样就可以在eclipse里或者qtcreator里用opencv了。 不过要配置号相应的路径和lib文件。
示例代码
对opencv的sample进行编译并运行
cd opencv_dir/samples/c
./build_all.sh
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
运行结果
python使用opencv
如果想在python中使用opencv的话,这里使用的是python虚拟环境,只需要把opencv编译的cv2.so和原始的cv.py拷贝到python的site-packages路径下面
cp opencv_dir/build/lib/cv2.so ENV/lib/python2.7/site-packages/
cp opencv_dir/modules/python/src2/cv.py ENV/lib/python2.7/site-packages/
简单的改变图片大小并保存的python代码
import cv2 as cv
im = cv.imread(IMAGE_FILE) #IMAGE_FILE图片路径
im = cv.resize(im, (500, 500))
cv.imwrite(IMAGE_FILE_CP, im) #IMAGE_FILE_CP保存图片路径
出错
就像上面说的如果使用cmake直接进行配置,执行make编译会出现’nvcc fatal : Unsupported gpu architecture ‘compute_11’的错误,主要是cmake配置默认会把gpu和cuda选项选择上,但好像在这里的环境下opencv编译gpu和cuda一直不成功(当然也有人成功,不知道为什么),所以使用cmake-gui命令选择不安装gpu和cuda。不安装gpu和cuda对后面的工作也没有影响。
找不到cv2.so
要编译opencv_python,需要依赖numpy库,必须保证在编译opencv的时候配置文件识别到要使用的python的numpy库,如下图,可以出现BUILD_opencv_python和PYTHON_NUMPY_INCLUDER_DIR选项(这是自动识别出来的,你要系统默认的python库中安装了numpy就可以了),这样就能正常的编译出cv2.so。如果不能正确的找到numpy库,需要先安装好numpy,否则编译不出来cv2.so。