如果喜欢视频的话:YouTube 上有视频教程

https://www.youtube.com/watch?v=1YIAp3Lh5hI

后来我在mac上安装最新版的OpenCV 找到了一片非常详细的教程,一遍成,大赞

https://www.pyimagesearch.com/2016/11/28/macos-install-opencv-3-and-python-2-7/

狂踩坑,脑袋疼。

流程:

1.逛网下载opencv source Opencv3.1.0 zip

我的文件结构是:

| opencv

  | opencv 3.1.0

    | opencv_contrib-3.1.0

    | build  (自己mkdir创建的,将会在这里进行下面的 cmake)

2.unzip解压

3.安装一堆先决必要的环境:

sudo apt-get install xx xx xx

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

非常重要的一点,以至于之后让我入坑长达数小时而不知 所错之 不容易注意到的Trick:

  编译环境 gcc + g++ 都需要 4.9 version 及以上。

使用 gcc --version   g++ --version 可以产看。

使用下面命令安装g++ gcc 4.9:

  1. sudo add-apt-repository ppa:ubuntu-toolchain-r/test
  2. sudo apt-get update
  3. //可以执行下面两句
  4. sudo update-alternatives --remove-all gcc
  5. sudo update-alternatives --remove-all g++
  6. sudo apt-get install gcc-4.9
  7. sudo apt-get install g++-4.9
  8. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9
  9. sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9

期间出现了安装 libgtk2.0-dev 的时候,出现了依赖项不满足的问题,最后通过切换apt-get 源服务器为‘主服务器’(因为我们实验室的网络是可以自动过墙的)解决了问题(在软件更新里面设置)

据说选择 其他站点 选择 阿里或者163镜像服务器速度都不错!

4.cd Opencv3.1.0

mkdir build

cd build

5.cmake 这里搞了半天总有问题,最后使用了这个命令选项:

  1. sudo cmake -D CMAKE_BUILD_TYPE=Release -D INSTALL_C_EXAMPLES=OFF -D INSTALL_CREATE_DISTRIB=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

 说明:

 -D INSTALL_C_EXAMPLES=OFF  是为了屏蔽opencv3.1.0中的一个bug

  1. -D INSTALL_CREATE_DISTRIB=ON 选项是为了屏蔽后面的一个错误,在使用库文件管理工具编译时:
    出现的如下这个错误。
  1. g++ example.cpp -o example `pkg-config --libs --cflags opencv`
  2. /usr/bin/ld: 找不到 -lippicv
    这样以后编译工程的话

  #LDFLAGS := -lopencv_imgcodecs -lopencv_highgui -lopencv_xfeatures2d -lopencv_features2d -lopencv_core -lopencv_flann -lopencv_calib3d -lopencv_imgproc
  LDFLAGS :=`pkg-config --libs opencv`

  可以直接用pkg 就不用去一个个的罗列需要用到的libs了。一股脑全加进去了

  1. 关于出现checkincludefiles.c 编译时 sys/videoio.h  等等的找不到错误。可以不用理会,他们并不是组织 configuration done的原因。
  2. 6. make -j16 这里是根据自己的cpu核心数目进行cmake的时候可以并行加速

这里还会出现的错误:

error: ‘NppiGraphcutState’ has not been declared

通过修改 :

vim ~/Envoriment/opencv/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp

7.sudo make install

8. 如果你要是不配置下面的环境变量,运行时就会发现 找不到.x.xx.lib ,所以要把opencv lib文件路径加到环境变量里面。

这里环境变量分两种:profile 和 bash.bashrc 。profile是全局环境变量对于单个用户,后者是交互式shell下不针对某一个用户的环境变量。所以这里就都需要配置一下。

要小心后面没有多余的空格。

gedit /etc/profile

加入下面两行保存

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

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

source /etc/profile

gedit /etc/bash.bashrc

加入下面两行保存

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

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

source /etc/bash.bashrc

sudo ldconfig

ps :这里加上之前cuda环境时候配置的变量一共有四条自己加进来的环境变量,这里发现配置环境变量的两种格式,分别刚好都用上了。

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

----后记  1 + opencv_contrib——————————————————————————————————————————————————————————————

想用SIFT 但是发现在opencv_contrib中,现在在重装一遍。流程差不多,除了:

下载对应版本 3.1.0的opencv_contrib模块在github opencv/opencv_contrib -> releases  这里https://github.com/opencv/opencv_contrib/releases:

解压之后放到opencv_3.1.0文件夹下,

加上额外的链接模块的cmake编译语句是这样的:

  1. sudo cmake -D CMAKE_BUILD_TYPE=Release -D INSTALL_C_EXAMPLES=OFF -D INSTALL_CREATE_DISTRIB=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.1./modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ..

出现 config done 代表成功。否则:error occur的话,去check error log看一下哪里出问题了。

这样混合编译 主文件资源和 额外的module (contrib)

sudo make -j32

查看cpu使用率:

htop命令查看:

16核cpu基本都飙到极限。

Intel® Xeon(R) CPU E5-1660 v4 @ 3.20GHz × 15

这一阶段跑了:大概10minutes

sudo make install

----后记  2 + cuda(gpu)——————————————————————————————————————————————————————————————

cmake命令如下(记得更新 gcc g++ 版本到 4.9以上):

  1. sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=OFF -D WITH_CUDA=ON -D WITH_QT=ON -D ENABLE_FAST_MATH= -D CUDA_FAST_MATH= -D WITH_CUBLAS= -D INSTALL_CREATE_DISTRIB=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.1./modules/ ..

哇 第N次装 opencv , 每次遇到的问题都不一样。 难受。。。

ubuntu14.04 + GTX980ti + cuda 8.0 ---Opencv3.1.0(基础+opecv_contrib)配置的更多相关文章

  1. ubuntu14.04下编译安装ambari-2.4.2.0

    ubuntu14.04下编译安装ambari-2.4.2.0 编译前的准备工作 准备工作有: 系统参数 系统依赖(编译环境) 离线安装包 java环境 maven环境 Nodejs环境 git环境 a ...

  2. ubuntu14.04 安装 CUDA 7.5 / CUDA 8.0

    原文转自:http://blog.csdn.net/masa_fish/article/details/51882183 CUDA7.5和CUDA8.0的安装过程是一毛一样的.所以如果安装CUDA8. ...

  3. ubuntu14.04安装cuda

    1 装系统时候注意,另外14.04要好于12.04,自带了无线驱动 ubuntu14.04安装完不要update 2 安装cuda和cudnn http://blog.csdn.net/l297969 ...

  4. [环境配置]Ubuntu 16.04 源码编译安装OpenCV-3.2.0+OpenCV_contrib-3.2.0及产生的问题

    1.OpenCV-3.2.0+OpenCV_contrib-3.2.0编译安装过程 1)下载官方要求的依赖包 GCC 4.4.x or later CMake 2.6 or higher Git GT ...

  5. 配置YOLO2(ubuntu16.04+cuda8.0+opencv3.1.0)

    要求已经安装好了CUDA 8.0 以及OpenCV3.1.0 YOLO官方网站 配置darknet git clone https://github.com/pjreddie/darknet cd d ...

  6. ubuntu14.04 64bit 安装 && 破解quartus13.0 记录

    安装文件:Quartus-13.0.0.156-linux.iso             Quartus-13.0.0.156-devices-1.iso 1.挂载:sudo mount -o lo ...

  7. ubuntu14.04中mysql的安裝及utf8编码集配置

    mysql的安裝使用sudo apt-get install mysql-server即可安裝,我安裝的是5.6版.安装过程中会要求输入root账户的密码,按提示输入即可. Mysql Workben ...

  8. 艰辛五天:Ubuntu14.04+显卡驱动+cuda+Theano环境安装过程

    题记:从一开始不知道显卡就是GPU(虽然是学计算机的,但是我真的不知道…脑残如我也是醉了),到搞好所有这些环境前后弄了5天时间,前面的买显卡.装显卡和装双系统见另一篇博客装显卡.双系统,这篇主要记录我 ...

  9. ubuntu14.04安装、NVIDIA显卡驱动安装及CUDA8.0、Cudnn5.1的环境搭建

    安装环境:hp-Z440工作站.64位Ubuntu14.04(64位Ubuntu16.04).Cuda8.0.Cudnn5.1.Nvidia GeForce GT 705.Tesla K40c 本文可 ...

随机推荐

  1. Unity Critter地图导出到server配置

    普通情况下,从Critter导出的地图会与Unity自带的Navigation洪培出的地图会有比較大的差异.须要耐心调整Critter的參数才干够. 以下是我调的參数,与Unity导出的地图基本相似. ...

  2. ZOJ 2859 二维线段树

    思路:自己写的第二发二维线段树1A.哈哈,看来对二维的push操作比較了解了:可是还没遇到在两个线段树中同一时候进行push操作的,事实上这题我是想在x维和y维同一时候进行push操作的.可是想了好久 ...

  3. instancetype VS id

    英文好的直接读下面链接的文章就好了: http://stackoverflow.com/questions/8972221/would-it-be-beneficial-to-begin-using- ...

  4. 计算机体系结构的铁律(iron law)

    计算机体系结构的铁律可由下面公式来描写叙述: 从Programmer的角度来看,处理器的性能就是运行程序的耗费的时间.所以用Time/Program来刻画处理器性能.而这个简单的公式背后是有很丰富的内 ...

  5. eclispe pydev tab改回 空格找到方法了,这个链接:http://stackoverflow.com/questions/23570925/eclipse-indents-new-line-with-tabs-instead-of-spaces

    看这个链接: 3down votefavorite 1 I've followed all the suggestions here. When I press return, I get a new ...

  6. java8--NIO(java疯狂讲义3复习笔记)

    NIO采用内存映射文件的方式处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了(这种方式模拟了操作系统上的虚拟内存的概念),通过这种方式来进行输入输出比传统的 ...

  7. C项目实践之通讯录管理案例

    1.功能需求分析 通讯录管理案例主要实现对联系人的信息进行添加.显示.查找.删除.更新和保存功能.主要功能需求描述如下: (1)系统主控平台: 充许用户选择想要进行的操作,包括添加联系人信息,显示.查 ...

  8. hdu4908 & BestCoder Round #3 BestCoder Sequence(组合数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4908 BestCoder Sequence Time Limit: 2000/1000 MS (Jav ...

  9. 表单提交数据量大于2m,java 后台接受不到表单传递过来的数据

    一般来说 post请求提交的数据无大小限制,但是tomcat 设置默认的表单传输数据大小不能2m,这时候当数据大于2m后台接收达不到表单的数据,需要修改tomcat的server.xml的的maxPo ...

  10. python的md5和base64加密

    在用jmeter测试接口时,有的请求参数会加密,例如,回流接口:http://ip:port/oms-gateway-datareflow-mq/orderReflow/tmsPracticeActi ...