当前位置:   article > 正文

Ubuntu 16.04 安装Opencv3.1.0 (选装opencv_contrib模块)_sudo apt-get install python3-opencv contrib

sudo apt-get install python3-opencv contrib

转载:http://www.cnblogs.com/asmer-stone/p/5089764.html
据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边。但是这里边有很多我们经常要用的算法,比如SIFT,SURF等(在xfeatures2d 模块里边)。官网提供了说明,可以把opencv_contrib扩展模块添加编译到已安装的opencv3.0.0里边,也可以安装的时候直接把扩展模块编译进去一并安装。

1.依赖关系

GCC 4.4.x or later
CMake 2.8.7 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注:官方文档中虽然说其中一些依赖包是可选的,但是最好还是都装上,以防出问题。

以上依赖包可用以下命令安装:

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
sudo apt-get install libv4l-dev
  • 1
  • 2
  • 3
  • 4

2.下载源码

  1. 可以从opencv官网直接下载:http://opencv.org/releases.html
  2. 也可以从github上clone:
cd ~/<my_working_directory>  //比如工作目录为opencv即,cd ~/opencv
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
  • 1
  • 2
  • 3

3.CMake Opencv源码

建立一个编译目录(例如:/build)把cmake后的文件都放在这里边。

cd ~/opencv
mkdir build  //建立一个build目录,把cmake的文件都放着里边
cd build   //进入build目录
  • 1
  • 2
  • 3

然后开始cmake,这里需要注意几个cmake的参数,比较重要。

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/>  WITH_LIBV4L=ON..
  • 1

注:

  • 其中 CMAKE_BUILD_TYPE=Release / Debug
  • 如果不需要opencv_contrib则去掉-D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/>
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local WITH_LIBV4L=ON ..
  • 1
  • 不需要例子:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_OPENGL=ON -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=OFF ..
  • 1

注:切记最后’..’两个点之前要加空格!!

OPENCV_EXTRA_MODULES_PATH 就是用来指定要编译的扩展模块,后边加上刚下载的opencv_contrib模块的路径即可。

这里官方文档上还给出了其他一些参数,但是我没用过,这里就不再描述了。有需要的可以查看http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html

4.把代码编译成可执行文件

这里官方推荐使用多进程编译,推荐七个进程:

make -j7 # 并行运行七个jobs,这一步也在build目录中进行
  • 1

注意:若CUDA版本为8.0以上,需要执行如下步骤:

进入opencv-3.1.0/modules/cudalegacy/src/目录,修改graphcuts.cpp文件,将:

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
  • 1
  • 2

改为

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
  • 1
  • 2

否则,会出现错误:

error: ‘NppiGraphcutState‘ has not been declared

typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState
  • 1
  • 2
  • 3

5.安装

sudo make install

如果你要在python下运行opencv库的情况下,那就必须安装安装python-opencv
sudo apt-get install python-opencv
  • 1
  • 2
  • 3
  • 4

6.配置库文件路径

/bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
#或者直接打开/etc/ld.so.conf.d/opencv.conf,添加/usr/local/lib
#使配置生效
sudo  ldconfig(重要)
  • 1
  • 2
  • 3
  • 4

7.设置环境变量

sudo vim/etc/bash.bashrc   
#在最后加入以下两行代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
export PKG_CONFIG_PATH  
#使配置生效
sudo source /etc/bash.bashrc 
(该步骤可能会报错找不到命令,原因是source为root命令
su(进入root权限) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

8.查看

pkg-config --modversion opencv
pkg-config --cflags opencv
  • 1
  • 2

9.运行测试

我是用python+opencv的,我这里直接运行opencv自带的python的例子程序,TX1自带摄像头不能用,需要使用外接USB摄像头,插入USB接口即可,无需安装驱动,也无需改动测试代码

cd <opencv3.1.0_dir>/samples/python/
python video.py
python edge.py
python facedetect.py
  • 1
  • 2
  • 3
  • 4

这里写图片描述
参考文献:

http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html

https://github.com/Itseez/opencv_contrib/blob/master/README.md

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/119881
推荐阅读
相关标签
  

闽ICP备14008679号