unzip opencv-x.x.x.zip
没有cmake 安装之,有跳过
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
进入解压缩文件夹
mkdir build
cd build
进行cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv340 -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..
(CUDA_GENERATION=Kepler Auto)
注意默认
CMAKE_INSTALL_PREFIX=/usr/local
自定义为
CMAKE_INSTALL_PREFIX=/usr/local/opencv340
多版本安装可以这样
修改cmake_install_prefix,
opencv3.1 安装目录/usr/local/opencv3,
opencv2.4 安装目录/usr/local/opencv2,
注意如果准备切换opencv版本,一定不要选择默认路径,否则,链接opencv的时候会因为多版本的lib发生链接冲突。
sudo make
sudo make install
sudo make install 执行完毕后OpenCV安装过程就结束了,
如果(单一版本的)
{
接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
source /etc/bash.bashrc
更新
sudo updatedb
重启系统,重启系统后cd到build文件夹下:
sudo apt-get install checkinstall
Linux源码打包工具CheckInstall
ubuntu上利用 checkinstall/dpkg 制作/安装/卸载deb或rpm包
sudo checkinstall
然后按照提示安装就可以了。
使用checkinstall的目的是为了更好的管理我安装的opencv,因为opencv的安装很麻烦,卸载更麻烦,其安装的时候修改了一大堆的文件,当我想使用别的版本的opencv时,将当前版本的opencv卸载就是一件头疼的事情,因此需要使用checkinstall来管理我的安装。
执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -r build即可。
ubuntu16.04安装opencv3.4.0教程
}
否则若(多版本切换)
{
跳过系统环境变量的设置,设置/etc/profile和~/.bashrc导致同时使用不同版本时发生错误,所以跳过;
配置终端的环境变量,不同的终端设置不同的opencv
步骤:
打开终端,需要运行opencv3的,注意/usr/local/opencv3为opencv3.1的安装目录
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib
相应的,需要运行opencv2的,注意/usr/local/opencv2为opencv2.4*的安装目录
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib
pkgcongfig中的有opencv.pc保存有对应opencv的include和lib路径,但是sudo ldconfig后生效,
可以用下列三个命令验证
pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs opencv
Ubuntu下多个版本OpenCV管理(Multiple Opencv version)
Ubuntu14.04 opencv2.4.8和opencv3.2多版本共存 (ros下使用)
}
优点:
可以不同版本的opencv同时编译;
缺点:
每个终端下运行opencv 都要设置对应的环境变量,新建终端默认没有opencv的环境变量需要从重新设置。
第七步:CMakeLists的一点点修改
因为usr/local/opencv3/share/OpenCV/OpenCVConfig.cmake中设置了opencv的配置,自定义路径安装opencv时,找不到这个文件OpenCVConfig.cmake,opencv-config.cmake
需要在项目的CMakeList.txt中添加OpenCVConfig.cmake的路径
set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")
根据自定义的opencv路径修改。
error:1 /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope
原因g++版本太新了,兼容一下,在出现上面错误时,在CMakeLists.txt中前面几行添加
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")