zoukankan      html  css  js  c++  java
  • ubuntu下(神威服务器下)安装opencv3.4以及c++编译

    1.    OpenCV3.4.2 下载
    https://github.com/opencv/opencv/archive/3.4.2.zip
    输入命令: wget https://github.com/opencv/opencv/archive/3.4.2.zip
    2.    安装准备
    //软件源更新
    sudo apt-get update
    3.    安装 gcc 和 g++ 开发环境
    sudo apt-get install build-essential
    查看 gcc 版本 然后安装 统一版本的 g++
    gcc --version
    安装 g++
    sudo apt-get install g++-4.4
    查看 g++ 版本
    g++ --version
    4.    安装构建OpenCV的相关工具
    //安装cmake、git和pkg-config
    sudo apt-get install cmake git pkg-config
    5.    安装常用图像工具包
    //安装jpeg格式图像工具包
    sudo apt-get install libjpeg8-dev ???
    //安装tif格式图像工具包
    sudo apt-get install libtiff5-dev
    //安装JPEG-2000图像工具包
    sudo apt-get install libjasper-dev
    //安装png图像工具包
    sudo apt-get install libpng12-dev
    6.    安装视频I/O包(注意最后一个包的数字“4”后面是“L”)
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
    7.    安装gtk2.0(树莓派很可能下载错误,更换中科大或者清华源即可,ubuntu有可能出现包版本过高的情况,需要将依赖包降级安装)
    sudo apt-get install libgtk2.0-dev
    8.    安装优化函数包
    sudo apt-get install libatlas-base-dev gfortran
    9.    解压opencv-3.4.2,并在目录下创建Release文件夹
    unzip 3.4.2.zip
    cd opencv-3.4.2
    mkdir Release
    10.    在终端进入Release文件夹
    cd  /home/deepin/peng/opencv-3.4.2/Release
    11.    CMake配置编译
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
    如果以下错误:
    qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file  or directory.

    执行以下指令:

    sudo apt-get install qt5-default

    在重复步骤11的命令,即可成功,如下图:

     12.    Make编译(至少6个小时)
    sudo make
    1)    报错:/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available(如下图)


    解决方案:
    参考:https://serverfault.com/questions/696631/libcurl-so-4-no-version-information-available
        https://stackoverflow.com/questions/30017397/error-curl-usr-local-lib-libcurl-so-4-no-version-information-available-requ


    2)    报错:../../lib/libopencv_dnn.so.3.4.2:对‘google::protobuf::internal::Release_CompareAndSwap(long volatile*, long, long)’未定义的引用(如下图)

    解决方案:
    参考:https://github.com/protocolbuffers/protobuf/issues/3937

     13.    安装
    sudo make install
    14.    环境配置添加库路径
    sudo gedit /etc/ld.so.conf.d/opencv.conf
    或者 sudo vi /etc/ld.so.conf.d/opencv.conf
    #打开后可能是空文件,在文件内容最后添加
    /usr/local/lib
    15.    更新系统库
    sudo ldconfig
    16.    配置bash,执行如下命令
    sudo gedit /etc/bash.bashrc
    或者sudo vi /etc/bash.bashrc
    # 在末尾添加
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
    export PKG_CONFIG_PATH  
    17.    保存退出,然后执行如下命令使得配置生效
    source /etc/bash.bashrc
    # 激活配置然后更新database
    sudo updatedb 

    18.    测试opencv(C++),这时,已经可以通过C++使用opencv了
    1)    创建工作目录
    mkdir ~/opencv-lena
    cd ~/opencv-lena
    gedit DisplayImage.cpp
    2)    编辑如下代码

     1 #include <iostream>
     2 #include <opencv2/opencv.hpp>
     3  
     4 using namespace cv;
     5 using namespace std;
     6  
     7 int main()
     8 {
     9     Mat image;
    10     //必须使用绝对路径
    11     image = imread("/home/nic/20171125154428073.png");
    12     if ( image.empty() )
    13     {
    14         cout<<"No image data!"<< endl;
    15         return -1;
    16     }
    17     namedWindow("Display Image");
    18     imshow("Display Image", image);
    19     waitKey(0);
    20     return 0;
    21 }
    View Code

    3)    创建CMake编译文件
    vi CMakeLists.txt
    写入如下内容:

    1 cmake_minimum_required(VERSION 3.10)
    2 project(demo)
    3 set(CMAKE_CXX_STANDARD 11)
    4 find_package(OpenCV REQUIRED)
    5 add_executable(demo DisplayImage.cpp)
    6 target_link_libraries( demo ${OpenCV_LIBS} )
    View Code

    4)    编译
    cd ~/opencv-lena
    cmake .
    make
    注:如果执行cmake . 编译时,报错:


    解决方案:
    参考:https://stackoverflow.com/questions/30017397/error-curl-usr-local-lib-libcurl-so-4-no-version-information-available-requ
    5)    执行
          ./demo

    本文编译主要参考文档:

    https://blog.csdn.net/hjxu2016/article/details/82390434

    https://blog.csdn.net/qq_33591712/article/details/83279982

  • 相关阅读:
    【AT1219】歴史の研究(回滚莫队模板)
    【洛谷4245】【模板】任意模数多项式乘法
    同余与逆元
    线性推逆元
    大整数类型!
    浅谈扩展欧几里得定理(附裴蜀定理)
    二进制串题解(国际考试备用题)
    String 的成员函数
    关于快速幂
    string的赋值
  • 原文地址:https://www.cnblogs.com/zhaopengpeng/p/14686465.html
Copyright © 2011-2022 走看看