zoukankan      html  css  js  c++  java
  • ubuntu16.04 安装opencv3.2.0以及opencv_contrib-3.2.0

    1.需要的包:
    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

    近期需要在ubuntu18.04系统上安装opencv但是在安装依赖包的过程中,有一个依赖包,libjasper-dev在使用命令

        sudo apt-get install libjaster-dev

    提示:errorE: unable to locate libjasper-dev

    后来google到解决办法,复制到这里

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev

    成功的解决了问题,其中libjasper1是libjasper-dev的依赖包

    2.下载安装包opencv-3.2.0.zip, opencv_contrib-3.2.0.zip

    上opencv官网下载http://opencv.org/。

    解压安装包到你想要的地方,本文以存放主文件加下。
    例如 /home/imagealg/software/opencv/

    下载 opencv_contrib的方法见下面网址

    https://www.cnblogs.com/aiwuzhi/p/7334514.html

    3. 利用终端进入opencv3文件夹,代码如下:

    cd ~/opencv-3.0.0

    4. 新建build文件夹存放opencv的编译文件,进入build文件夹代码如下

    mkdir build
    cd build

    5. 配置opencv文件,代码如下:
    不安装opencv_contrib-3.2.0
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    安装opencv_contrib-3.2.0
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/imagealg/software/opencv/opencv_contrib-3.2.0/modules/ ..
    或者使用cmake-gui用图形界面编译。

    其中/usr/local 是指将要install的路径,一般默认为/usr/local
    其中OPENCV_EXTRA_MODULES_PATH=/home/user/opencv_contrib-3.2.0/modules/ .. 是指opencv_contrib-3.2.0中modules所在的路径,后面的两点不可省略

    cmake过程中可能遇到的问题:
    如果网络不好,出现ippicv_linux_20151201.tgz无法在终端下载的情况,则可以先单独下载ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文件),如路径/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/
    移动的时候,可以另外打开一个终端操作:
    sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
    如果同样有其他类似的文件无法下载,方法同上。
    for file: [/DATA/software/opencv/opencv-3.2.0/opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0/protobuf-cpp-3.1.0.tar.gz]

    错误:Unsupported gpu architecture 'compute_20'

    如果是cuda9.0 cuda版本是9.0,估计就是版本问题,网上有人说把cuda降到8.0以下。这个方法真是扯淡~

    其实只要在编译的时候加一句话就好了

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler
     

    关键就是在最后指定使用Kepler

    --------------------- 本文来自 HandsomeHans 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/renhanchi/article/details/80493232?utm_source=copy 

    6. 进行编译,代码如下:

    sudo make -j4

    7. 安装opencv库到系统,代码如下:

    sudo make install

    这样OpenCV就可以使用了。

    8 配置opencv.conf file ,加入环境变量
    sudo gedit /etc/ld.so.conf.d/opencv.conf

    在opencv.conf里面加入命令
    /usr/local/lib

    更新库目录
    sudo ldconfig

    打开文件bash.bashrc
    sudo gedit /etc/bash.bashrc
    加入下面两行
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH

    9 最后 sudo ldconfig -v 如果有共享库输出的话,就证明成功了。

    10 程序测试 

    编译不通过请注销或者重启电脑试试
    测试代码:opencvtest.cpp

    
    

    #include <opencv2/opencv.hpp>

    using namespace cv;

    using namespace std;

    int main()
    {

    Mat img = imread("dazu.jpg");
    if(img.empty())
    {
    cout<<"error";
    return -1;
    }
    imshow("mypic",img);
    waitKey();
    return 0;
    }

    注意:linux下面的目录形式为/.../....

    所以“#include <opencv2corecore.hpp>” 会找不到头文件

    编译方式:
    1 命令行
    g++  opencvtest.cpp -o opencvtest  `pkg-config  --cflags --libs opencv` 

    2 借助cmake,写CMakeLists.txt

    cmake_minimum_required(VERSION 2.8)

    project(opencvtest)

    find_package( OpenCV REQUIRED )

    add_executable( opencvtest opencvtest.cpp )

    target_link_libraries( opencvtest ${OpenCV_LIBS} )

    之后 执行

    cmake .
    make
     运行
    ./ opencvtest

  • 相关阅读:
    解决express不是内部或外部命令
    spring ioc认识
    Filter编码过滤
    call、apply、bind
    js面向对象浅析
    由clientWidth到document
    401
    删除页面中Form下面隐藏的ViewStatue
    asp.net 下载
    day98
  • 原文地址:https://www.cnblogs.com/adong7639/p/7721785.html
Copyright © 2011-2022 走看看