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>\n");
  9. return -1;
  10. }
  11. Mat image;
  12. image= imread(argv[1], 1);
  13. if(!image.data)
  14. {
  15. printf("Noimage data\n");
  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

(4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤的更多相关文章

  1. 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境

    在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...

  2. 39 Ubuntu下配置python的vscode开发环境

    0 引言 最近想在ubuntu下搞深度学习,首先配置了python的vscode开发环境.在配置python时,选择了Anaconda3.x,保证了其相对于系统python2.x的独立性.另外,vsc ...

  3. 在linux ubuntu下搭建深度学习/机器学习开发环境

    一.安装Anaconda 1.下载 下载地址为:https://www.anaconda.com/download/#linux 2.安装anaconda,执行命令: bash ~/Downloads ...

  4. 在Ubuntu下配置舒服的Python开发环境

    Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的一个安装和配置步骤,基于 Ubuntu 12.0 ...

  5. Ubuntu下配置舒服的Python开发环境

    Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的一个安装和配置步骤,基于 Ubuntu 12.0 ...

  6. Linux下搭建gtk+2.0开发环境

    安装gtk2.0 sudo apt-get install libgtk2.0-dev 查看 2.x 版本 pkg-config --modversion gtk+-2.0 #有可能需要sudo ap ...

  7. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  8. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  9. 【转】在Ubuntu下建立Eclipse的Android开发环境

    本文将介绍如何建立Ubuntu下基于Eclipse的Android开发环境的方法. 大部分的Android开发者都是使用Eclipse来开发Android,本文将向各位介绍一下建立Ubuntu下基于E ...

随机推荐

  1. Jmeter之JDBC--Mysql

    一.添加JDBC Connection Configuration控件 界面显示如下: 配置说明: 1.名称:标识 2.注释:备注信息 3.Variable Name:定义的变量名,供后续调用: 4. ...

  2. 倾旋之slack主题协同

    源:https://pocketcorp.slack.com/join/shared_invite/enQtNTk2MDYwNDA4NzU0LTg3ZGVlNDE5NWUzNjJhZTc1MDQ5MT ...

  3. 解决django项目在ubuntu系统上无法安装mysqlclient

    首先我的项目是django2.0,python环境是3.5. 我们在本地开发完django项目了,在本地运行是成功的,然后我们把django项目放到服务器上,运行的时候就出错了. 如图: 我们都知道, ...

  4. Node.JS实战36:写一个WAF中间件!防黑客,防攻击

    如果用Node.JS做Web服务,很多时候是会选择Express的. 本文,将展示如何如何实现一个WAF中间件. WAF有什么用? WAF即Web Application Firewall,Web应用 ...

  5. Java集合概括总结及集合选用

    Collection 1. List ArrayList :Object数组,是一个数组队列,相当于动态数组.它由数组实现,随机访问效率高,随机插入.随机删除效率低. LinkedList :是一个双 ...

  6. [hdu6558][CCPC2018吉林D题]The Moon(期望dp)

    题目链接 当时年少不懂期望$dp$,时隔一年看到这道题感觉好容易.... 定义状态$dp[i]$表示当前的$q$值为$i$时的期望,则当$q$值为$100$时$dp[100]=100/q$,这时后发现 ...

  7. 洛谷P4391 [BOI2009]Radio Transmission 无线传输

    (https://www.luogu.org/problemnew/show/P4391) 题目描述 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最 ...

  8. python Calendar 模块导入及用法

    Calendar 是python 日历模块,此模块的函数都是日历相关的,例如打印某月的字符月历,星期之类的模块,下面剖析python Calendar 模块导入及用法. 1,python导入日历模块 ...

  9. vue 一个轮播的组件

    当我们进行开发的时候,并不是说所有信息都会在写一个组件中 作为项目的老大,我们要去思考每个文件下面需要放什么业务,分的越细.越合理为好 我们在componts文件下新建一个Banner.vue 组件 ...

  10. ReentrantLock等待通知机制Condition介绍

    Object类中的wait(),notify()和notifyAll()可以实现线程的等待通知模型,同样在ReentrantLock中可以借助Condition来完成这种机制.本篇就简要介绍Condi ...