• Ubuntu安装多个版本的Opencv


    参考:

    https://www.cnblogs.com/hxzkh/p/8473190.html

    将该博主的某一部分摘录出来

    ->lsdslam 中的opencv版本

    3、编译 opencv

    由于这个代码用到了opencv2.4 版本,所以我们要下载对版本。之前一直编译不同,以为是下载的版本有问题,我下载了 2.4.9、2.4.13、2.4.13.5,最后用 2.4.13版本跑通了,当然我不是说 2.4.9、2.4.13.5 等其他 2.4 版本不能跑通。为什么这么说呢?因为我之前之所以出问题编译出错是因为我之前装了 3.1.0的版本,所以不行。所以,你可以试一试,我觉得只要是 2.4. 的版本应该都可以。

    这里我简单交代一下我曲折的编译之路。。。然后再给出正确方法。

    首先说一下 opencv 版本的问题,之前跑另一个程序需要opencv3,,那时候没玩过这,也不懂,就按默认路径安装了 opencv3.1.0,然后它自己就装到了 usr/local/include、usr/local/lib,还有share什么的,好多个文件夹,导致我卸载都很麻烦,要卸载它,你就得手动删掉它所有安装的路径下的相关文件,这些安装信息在安装时保存在了一个什么 install 文件中,具体我忘了(反正我是运行 unintall 不行,所以才手动一个一个删的)。

    就这样,删掉了opencv3.1.0版本,结果还是编译出错,说是找不到一些opencv里的程序,其实是程序找不到opencv在哪里(因为我没有安装到默认路径,这个一会再说)。试了很多方法,最后发现,不光要设置环境变量,还要设置 CMakeLists 文件告诉程序 opencv 的路径。

    那我为什么要改变安装路径,而不是按默认安装到 usr 呢?当然是为了方便管理。如同你在 Windows 中安装软件,谁会默认安装到 C 盘啊?是吧,都是安装到别的盘,这样方便管理,还不会影响系统,重装时也不会丢失。linux下也是一样,改变了安装路径,就可以同时安装多个版本的 opencv,以应对不同程序的需求。切换opencv版本有很多文档,百度一下就行。切换时只需要改变环境变量和 CMakeLists 文件中的设置就行。我下面安装 opencv 的方法就是这种。

    好了,言归正传,首先到官网下载 opencv2.4.13

    将下载好的压缩包解压到你方便的位置,这里我是专门建了一个用来放 opencv 源码的文件夹(我把opencv2.4.9、2.4.13、3.1.0版本源码都放在这里了):
    cd ~/

    mkdir opencv_src

    然后建立一个用于安装 opencv 的文件夹,这个也是自己看着办,我同样是在 Home 下,然后每个opencv版本各占一个文件夹:

    cd ~/

    mkdir opencv-2.4.13

    所以最后我的格局是这样的:

    然后进入解压后的 opencv-2.4.13,建立 build 文件夹并进入

    mkdir build

    cd build

    执行:

    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=~/opencv-2.4.13 ..

    注意不要丢掉最后的两个点!它狠重要!!

    然后执行:

    make

    sudo make install

    如果虚拟机配了双核,为了加快速度可以 make -j2 和 sudo make install -j2

    安装后会发现在安装文件夹 opencv-2.4.13 中的 lib、bin等文件上面有小锁子标志,如果要消除这个小锁子,需要更改权限:

    cd ~/

    sudo chmod 777 opencv-2.4.13 -R

    就可以了

    然后配置 opencv 变量,编辑文件 /etc/ld.so.conf.d/opencv.conf(如果没有就会自动创建):

    sudo gedit  /etc/ld.so.conf.d/opencv.conf

    然后添加 opencv2.4.13 的 lib 路径:

    ~/opencv-2.4.13/lib

    保存退出,执行:

    sudo ldconfig

    编辑 ~/.bashrc ,最后添加:

    #opencv-2.4.13

    export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:~/opencv-2.4.13/lib/pkgconfig

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:~/opencv-2.4.13/lib

    保存退出,执行:

    source ~/.bashrc

    查看当前 opencv 版本,新开窗口执行:

    pkg-config --modversion opencv

    如果显示 2.4.13,说明当前opencv版本正是刚安装的 2.4.13

  • 相关阅读:
    Java实现 LeetCode 56 合并区间
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
  • 原文地址:https://www.cnblogs.com/1228073191Blog/p/10927384.html
Copyright © 2020-2023  润新知