安装平台:ubuntu 14.04 TLS
安装库:opencv2.49 并且支持多版本opencv安装
一、安装
- 下载opencv 2.49的源码包
opencv2.49 解压源码包
unzip opencv-2.4.9.zip
上面的命令是将下载的opencv249的源码解压到当前目录下
unzip,tar等工具可以参考tar等命令这个文章。
安装一些依赖库
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev
libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev安装opencv
cd opencv-2.4.9
进入有opencv源码的目录
cmake . -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv249
cmake后面的点表示在当前目录下寻找CMakeList.txt,-D后面的参数如果不加的话,默认会将opencv安装到/usr/local目录下
在本例中,为了使得可以同时使用多个版本opencv,手动指定安装目录使用make进行编译
make
sudo make install
二、配置
将opencv的库加入到系统路径中,让系统可以找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
末尾加上opencv的安装目录,本例中为/usr/local/opencv249/lib,对应于{CMAKE_INSTALL_PREFIX}/lib}(opencv.conf可能是一个空文件)这个操作等价于
sudo gedit /etc/ld.so.conf
在末尾加上/usr/local/opencv249/lib保存后退出
sudo ldconfig
使配置生效使用管道查找动态库的名字
sudo ldconfig -v >temp.so.txt && cat temp.so.txt|grep opencv
使用pkg-config工具管理opencv头文件和库
首先在/etc/profile中添加
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
pkg-config 维护着一个关于opencv的配置文件,这个文件(opencv.pc)在目录 /usr/local/lib/pkgconfig,这个文件记录着opencv的一些动态库信息,还有头文件信息
输入pkg-config –cflags opencv 和pkg-config –libs opencv ,可以发现以下信息。
正确的结果是如下:
root@noya-VirtualBox:/usr/local/lib# pkg-config --cflags opencv
-I/usr/local/include/opencv -I/usr/local/include
root@noya-VirtualBox:/usr/local/lib# pkg-config --libs opencv
/usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so /usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_ocl.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videostab.so -lrt -lpthread -lm -ldl
正是因为如此,我们既可以在makefile中指定头文件和库目录的位置
也可以直接
gcc gtk_example.c `pkg-config --flags --libs opencv`
三、调试
- 编译opencv自带的样例
在samples/c/build_all.sh,下运行该文件
./build_all.sh
编译完成后使用
./find_obj
查找物体