一、依赖包安装
前提:系统更新
sudo apt-get update
sudo apt-get upgrade
Ubuntu下安装软件或多或少都需要安装一些依赖包(软件)。opencv也不例外。
1. build-essential 软件包,为编译程序提供必需软件包的列表信息,这样软件包才知道头文件、库函数在哪里。还会下载依赖的软件包,安装gcc/g++/gdb/make 等基本编程工具,最后才组成一个开发环境。
sudo apt-get install build-essential
2. 下面依赖关系主要是为了能够支持读写图片以及视频等。
sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libtiff4-dev libswscale-dev libjasper-dev
3. 安装cmake,可以官网上下载源码编译,也可以在百度网盘下载2.8.12版本,当然可以直接使用apt-get方法。
sudo apt-get install cmake
4. 安装pkg-config,它是一个提供从源代码中编译软件时查询已安装的库时使用的统一接口的计算机软件。
sudo apt-get install pkg-config
5.其他
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
二、下载源码
Opencv的源码可以在其官网下载,解压到指定目录,如/home/**/opencv/
cd /home/**/opencv/
三、编译源码过程
1. 使用cmake来检测编译环境以及生成makefile以及其他project信息,在使用cmake过程可以设置一些参数。 在本目录下使用cmake,注意后面的点表示在当前目录下寻找CMakeLists.txt。cmake . 2. 使用make编译make 3. 使用make install 安装sudo make install 4. 上面的过程基本上完成了opencv的安装。但是并不能够马上用它,opencv还包含很多动态链接库。
你可以在文件/etc/ld.so.conf中添加 /usr/local/lib(这个跟安装目录有关, {CMAKE_INSTALL_PREFIX}/lib),
也可以在/etc/ld.so.conf.d 目录下增加一个conf文件(可以命名为 opencv.conf),同样添加 /usr/local/lib
等价以下命令sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig 使用下面的动态库管理命令ldconfig,让opencv的相关链接库被系统共享 sudo ldconfig -v 5. 完成了动态库的共享,还不能使用opencv来编程,还需要为程序指定openvc的头文件位置。这里使用pkg-config命令来完成。首先在 /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 命令可以列出关于opencv的配置信息:
pkg-config --libs opencv
6 测试OpenCV3.0
切换到OpenCV3.0的samples目录下面,并编译samples程序
cd opencv/samples/
sudo cmake .
sudo make -j $(nproc)
然后切换到cpp目录下
cd cpp/
./cpp-example-facedetect lena.jpg
卸载ubuntu
进入安装包的build文件执行:
make uninstall
cd ..
sudo rm -r build
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
参考: