Ubuntu 18.04安装OpenCV

    科技2022-09-01  122

    系统:Ubuntu18.04/CUDA10.0

    安装:OpenCV 3.4.0

    1.下载源码

    OpenCV官网:https://opencv.org/

    github地址: https://github.com/opencv/opencv/releases/tag/3.4.0

    下载链接

    2.安装依赖

    首先看官方的安装说明,这个非常有必要,官方写的比较好,基本按照官方说明进行操作就可以了。

    官方编译安装说明:https://docs.opencv.org/3.4.1/d7/d9f/tutorial_linux_install.html

    安装OpenCV需要先安装必要的工具包。

    GCC 4.4.x 或更新CMake 2.8.7 或更高版本GitGTK+2.x 或更高版本, including 头 (libgtk2.0-dev)pkg-configPython 2.6或更高版本以及带有开发人员包的Numpy 1.5或更高版本(Python -dev, Python - Numpy)ffmpeg或libav开发包:libavcodec-dev,libavformat-dev,libswscale-dev[可选] libtbb2 libtbb-dev[可选] libdc1394 2.x[可选] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev[可选] CUDA Toolkit 6.5 or higher

    在终端中依次输入指令

    sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

    可能会报错

    E: 无法定位软件包 libjasper-dev

    输入

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

    继续运行

    sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

    3.编译安装

    解压源码

    tar xvzf opencv-3.4.0.tar.gz

    新建文件夹并进入

    mkdir linuxidcbuild cd linuxidcbuild/

    执行cmake

    cmake ../opencv-3.4.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local

    然后进行编译make(这一步会很慢要等很长时间)

    make

    中间进度到75%左右可能会报错,具体情况见上篇博文解决“fatal error: dynlink_nvcuvid.h: 没有那个文件或目录#include <dynlink_nvcuvid.h>“问题

    安装

    sudo make install

    查看安装结果

    pkg-config --cflags --libs opencv

    4.配置文件

    安装完成之后配置文件

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

    打开文件可能是空白的,没有关系,在文件中添加

    /usr/local/lib

    使配置生效

    sudo ldconfig

    添加环境变量

    sudo gedit /etc/bash.bashrc

    在文件最后添加

    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

    使环境变量生效

    source /etc/bash.bashrc

    5.最后测试

    cd到opencv-3.4.0/smaples/cpp/example_cmake目录下

    按顺序执行

    cmake . make ./opencv_example

    make之后可能会报错

    //usr/lib/x86_64-linux-gnu/libatk-1.0.so.0:对‘g_log_structured_standard’未定义的引用 collect2: error: ld returned 1 exit status CMakeFiles/opencv_example.dir/build.make:134: recipe for target 'opencv_example' failed make[2]: *** [opencv_example] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/opencv_example.dir/all' failed make[1]: *** [CMakeFiles/opencv_example.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

    错误的原因:/usr/lib/x86_64-linux-gnu/libatk-1.0.so.0 被Anaconda中新版本的libglib编译。

    Ubuntu18.04版本中是:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.1)Anaconda :~/anaconda3/lib/libglib-2.0.so.0.5306.0 in this moment

    解决方法:

    安装最新版的glib库 conda install -c anaconda glib 在终端输入: grep -l g_log_structured_standard /usr/lib/x86_64-linux-gnu/*glib*.so* grep -l g_log_structured_standard ~/anaconda3/lib/*glib*so* 移动文件 mv ~/anaconda3/lib/libglib-2.0.so.0 ~/anaconda3/lib/libglib-2.0.so.0.backup

    问题解决!

    再次输入./opencv_example

    出现黑色弹窗"Hello OpenCV",终端中出现

    至此,Ubuntu18.04安装OpenCV完成.

     

    参考博客

    Caffe-SSD错误:ImportError: /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_log_structur

    Processed: 0.012, SQL: 9