ubuntu16.04上的OpenCV多版本共存

13 篇文章 1 订阅

本文是我的一个个人笔记:原文请查看:https://blog.csdn.net/llfjcmx/article/details/81238766

问题描述:首先在Ubuntu16.04上配置了最新的OpenCV3.2.0,再装一个opencv2.4.9

  1. 可以使用命令查看一下ubuntu上的OpenCV当前的版本
pkg-config --modversion opencv

在/usr/local/bin、/usr/local/include两个文件夹中可以看到opencv3.2.0的相关文件。
2.下载opencv的安装包,我下的是opencv2.4.9。然后安装依赖项

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

我安装的时候,有部分没装上,最后没有影响后面的安装,如下所示:

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

[sudo] yk 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
没有可用的软件包 libtiff4-dev,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
然而下列软件包会取代它:
  libtiff5-dev:i386 libtiff5-dev

E: 软件包 libtiff4-dev 没有可安装候选`

按照提示修改即可
3. 在/usr/local下面生成一个opencv249来安装存放opencv2.4.9的安装文件
这里先切到root 模式 输入 su 然后密码就可以

mkdir -p /usr/local/opencv249
  1. 进入解压后的opencv压缩包
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv249 ..
make
sudo make install

到这里,opencv的安装结束了。现在电脑上安装了两个版本的OpenCV,需要做一些配置。

  1. 修改bashrc文件来设置PKG_CONFIG_PATH
sudo gedit ~/.bashrc

在文件末尾加上下面两行:

export PKG_CONFIG_PATH=/usr/local/opencv249/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv249/lib

保存之后,source一下(不进行source也可以,重新开一个终端):

source ~/.bashrc

查看opencv的版本已经是2.4.9的了:

pkg-config --modversion opencv
  1. OpenCV3.2.0和OpenCV2.4.9使用的切换方法
    我使用的是cmake工具,在CMakeLists.txt中加入下面几行即可使用OpenCV2.4.9:
set(OpenCV_DIR /usr/local/opencv249/share/OpenCV)
find_package(OpenCV 2.4 REQUIRED)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS} /usr/local/opencv249/include)

如果想使用OpenCV3.2.0(一开始安装的就是这个)时,将上面的三行中的第1行和第3行去掉,然后将第2行改为即可。

find_package(OpenCV REQUIRED)

在另台电脑上安装报错(未解决):

../../lib/libopencv_highgui.so.2.4.10:对‘avcodec_alloc_frame’未定义的引用
../../lib/libopencv_highgui.so.2.4.10:对‘avcodec_encode_video’未定义的引用
collect2: error: ld returned 1 exit status
modules/imgproc/CMakeFiles/opencv_test_imgproc.dir/build.make:673: recipe for target 'bin/opencv_test_imgproc' failed
make[2]: *** [bin/opencv_test_imgproc] Error 1
CMakeFiles/Makefile2:1682: recipe for target 'modules/imgproc/CMakeFiles/opencv_test_imgproc.dir/all' failed
make[1]: *** [modules/imgproc/CMakeFiles/opencv_test_imgproc.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值