• (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤


                       Ubuntu下配置opencv3.1.0开发环境

    1、最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享

    2、步骤说明

    一、安装OpenCV3.1.0

    1.使用wget下载opencv源码

        url : https://github.com/Itseez/opencv/archive/3.1.0.zip

    sudo apt-get install wget sudo wget https://github.com/Itseez/opencv/archive/3.1.0.zip

    2.解压ZIP源码文件

    sudo apt-get install unzip
    sudo unzip opencv-3.1.0.zip

    3.进入源码目录,创建release目录

    cd opencv-3.1.0
    mkdir release

    4.安装依赖库

    sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev

    5. 进入release目录,安装OpenCV时,所有的文件都会被放到这个release目录下

    cd release

    
    

    6. cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local/opencv3.1.0目录下

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.1.0 .. 

    注意一点:在cmake到92%的时候会出现一个错误,针对这个错误,我们把
    /自己的定义路径/opencv-3.1.0/modules/cudalegacy/src下的 graphcuts.cpp中    #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 

    修改为:#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)即可,然后再次cmake即可。

    
    

    7.安装

    sudo make install -j8

     

    二、配置pkg-config(可选)

    1.创建pkgconfig目录

    mkdir /usr/local/pkgconfig

    2.拷贝opencv.pc文件到pkgconfig目录

    cp /usr/local/opencv3.1.0/lib/pkgconfig/opencv.pc   /usr/local/pkgconfig/opencv3.1.0.pc

    3.以管理员权限用vim打开bash

    sudo vim ~/.bashrc

    4.在文件最后一行添加环境变量

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

    5.wq保存文件后,source文件(执行脚本)

    source ~/.bashrc

    6.测试pkgconfig

    pkg-config --libs opencv3.1.0

    三、配置lib环境变量
    1、用vim打开/etc/ld.so.conf文件,添加上以下两行:
    /usr/loacal/
    opencv-3.1.0/lib
    
    
    /root/opencv/opencv-3.1.0/release/lib

    四、程序测试
    在任意一个目录下创建test.cpp文件,用vi编写如下内容:
    1. #include <stdio.h>
    2. #include <opencv2/opencv.hpp>
    3. using namespace cv;
    4. int main(int argc, char** argv)
    5. {
    6. if(argc!= 2)
    7. {
    8. printf("usage:DisplayImage.out <Image_Path> ");
    9. return -1;
    10. }
    11. Mat image;
    12. image= imread(argv[1], 1);
    13. if(!image.data)
    14. {
    15. printf("Noimage data ");
    16. return -1;
    17. }
    18. namedWindow("DisplayImage",CV_WINDOW_AUTOSIZE);
    19. imshow("DisplayImage",image);
    20. waitKey(0);
    21. return 0;
    22. }

    23. 使用g++编译的时候使用命令:

      g++ `pkg-config --cflags opencv` -o test test.cpp `pkg-config --libs opencv`

    24. 五、其他

      参考博客:http://blog.csdn.net/c406495762/article/details/62896035



    我有个朋友是爵士音乐家,他有次跟我说:如果你不是乐队里最差的演奏者,马上换支乐队。我现在在Spotify工作,在这里我每天都觉得自己是个【狗屁程序员】,也因此我离开了上一家公司,从Spotify重头开始。当我在这里再也感觉不到自己是个【狗屁程序员】的时候,我会选择离开,然后找一个能让我再次感到自己是坨屎的地方。这种策略在我的职业生涯里确实 帮了我大忙。 ------译自 Quora
  • 相关阅读:
    [Spark内核] 第38课:BlockManager架构原理、运行流程图和源码解密
    [Spark内核] 第37课:Task执行内幕与结果处理解密
    [Spark内核] 第36课:TaskScheduler内幕天机解密:Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详解等
    [Spark内核] 第35课:打通 Spark 系统运行内幕机制循环流程
    [Spark性能调优] 第三章 : Spark 2.1.0 中 Sort-Based Shuffle 产生的内幕
    [Spark内核] 第34课:Stage划分和Task最佳位置算法源码彻底解密
    spring boot 日志收集整理
    mybatis 使用redis实现二级缓存(spring boot)
    MD5收集整理
    IntelliJ IDEA 2019.2最新版本免费激活码
  • 原文地址:https://www.cnblogs.com/wycBlog/p/7217498.html
Copyright © 2020-2023  润新知