Linux下安装多版本的Opencv
我所使用的是Ubuntu14.04,通常Ubuntu系统是自带opencv的,使用命令
命令查看Opencv当前的版本:pkg-config --modversion opencv
1: 查看当前的版本:
pkg-config --modversion opencv
可以查看当前的opencv版本,而我的系统自带的是opencv-2.4.8- 因为不知道如何卸载自带的opencv,所以我决定直接安装另一个版本的opencv,即让两个版本opencv共存。首先下载新版本的opencv安装包,我因为实验需要,下载的是opencv-2.4.10,之后解压
- 安装一些opencv的依赖项
sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm
libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev
libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev
libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev
libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils
输入命令
cmake -D WITH_TBB=ON -D WITH_V4L=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/2.4.10 ../
make -j12
sudo make install -j12
3:配置Opencv的环境:
这样opencv-2.4.10就被安装在了/usr/local/opencv/2.4.10目录下.
接下来要对新安装的opencv-2.4.10进行配置,否则系统默认的还是opencv-2.4.8版本。
通过修改bashrc文件来设置PKG_ CONFIG_PATH
打开文件: vim ~/.bashrc
在文件的末尾加入:export PKG_CONFIG_PATH=/usr/local/opencv/2.4.12/lib/pkgconfig
export PKG_CONFIG_PATH
保存之后,再使用命令 source ~/.bashrc然后配置lib的路径:
cd /etc/ld.so.conf.d
touch opencv.conf
sudo vi opencv.conf
写入:/usr/local/opencv/2.4.10/lib
sudo ldconfig
这时候使用命令测试:
pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs opencv
可以看到全都已经变成了opencv-2.4.10版本了。如果还想使用原来的opencv-2.4.8,只需要再修改PKG_CONFIG_PATH为opencv-2.4.8的pkgconfig路径即可。
遇到的问题:编译的opencv的时候会遇到两个问题,多是因为先安装了cuda导致的:
问题1:compute_11架构的问题:
第一:删除Build目录,重新重建编译;
编译命令: cmake -D WITH_TBB=ON -D WITH_V4L=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/2.4.10 CUDA_GENERATION=Kepler ..
之后步骤都一样了!
问题2:NppiGraphcutState未定义的问题:
需要找到在graphcuts.cpp中把
#if !defined (HAVE_CUDA) ||defined (CUDA_DISABLER)
改为
#if !defined (HAVE_CUDA) ||defined (CUDA_DISABLER) || (CUDART_VERSION >=8000)
即可!