欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu16.04安装 opencv (终端下命令行)

程序员文章站 2022-05-09 22:15:03
...

ubuntu16.04安装 opencv (终端下命令行)

  • 安装依赖
编辑/etc/apt/source.list,取消屏蔽的src源
    sudo apt-get update
    sudo apt-get build-dep opencv 
    sudo apt-get install libeigen3-dev ffmpeg doxygen liblapacke-dev libgoogle-glog-dev libgstreamer1.0-dev libgstreamer0.10-dev libavresample-dev libopenblas-dev libgphoto2-dev libgtk-3-dev libv4l-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev liblapacke-dev libgflags-dev libjpeg-dev libtiff-dev libpng-dev ccache libprotobuf-dev libgoogle-glog-dev libharfbuzz-dev
wget  https://github.com/opencv/opencv/archive/4.1.0.zip
下载完成解压 unzip opencv-4.1.0.zip
进入opencv-4.1.0目录:  cd opencv-4.1.0
当前目录下创建文件夹 build :  mkdir build
进入build目录:  cd build
使用cmake安装:  cmake   /home/xxx/lib  ..(..不可省略路径可自定义)

配置环境变量 sudo gedit .bashrc(根目录~/)

  • 官网下载oencv、contrib以及依赖的工具====
  • 注意:opencv和贡献包的版本号必须统一,否则无法安装贡献包
sudo apt install axel #安装多线程手动下载工具
cd ~
mkdir libsrc
cd libsrc
axel -n 10 https://github.com/opencv/opencv/archive/4.1.0.zip #下载opencv
axel -n 10 https://github.com/opencv/opencv_contrib/archive/4.1.0.zip #下载contrib
unzip opencv-4.1.0.zip
unzip opencv_contrib-4.1.0.zip
***选择性下载***
#离线复制第三方依赖包(10M以上下载非常慢),加快安装速度
#下载ippicv
mkdir -p ~/libsrc/opencv-4.1.0/.cache/ippicv
cd ~/libsrc/opencv-4.1.0/.cache/ippicv
axel -n 10 https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz
mv ippicv_2019_lnx_intel64_general_20180723.tgz c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz

#下载face_landmark_mode
mkdir -p ~/libsrc/opencv-4.1.0/.cache/data
cd ~/libsrc/opencv-4.1.0/.cache/data
axel -n 10 https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
mv face_landmark_model.dat 7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat
  • 从源码安装opencv4.1.0,并安装opencv_contrib4.1.0贡献包
cd ~/libsrc/opencv-4.1.0/
mkdir build
cd build
cmake -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules ..
make -j4 #如果安装了matlab,速度可能会非常慢,大约一小时左右
vim unix-install/opencv.pc #编辑该文件,搜索-lippicv,将其删除
sudo make install
sudo ldconfig #库文件立即生效,不用重启
 
#删除
sudo make uninstall
 
#添加编译参数
-Dxxxxx=ON为依赖该模块
-Dxxxxx=OFF为不编译该模块
如想让videoio支持openni2,可加上-DWITH_OPENNI2=ON参数
cmake -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -DWITH_OPENNI2=ON ..
关于更多编译参数,查看opencv源码根目录下CMakelist.txt中的[OpenCV cmake options]段

  • 编译失败解决方法

如果执行make出现某个模块无法编译通过,通常是该模块所需的依赖库未安装正确, 最暴力的解决方法是在cmake时添加-D BUILD_opencv_“模块名”=OFF参数,不编译该模块,
例如:cmake -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=…/…/opencv_contrib-4.1.0/modules -D BUILD_opencv_python2=OFF …
也可以安装界面版cmake,sudo apt-get install cmake-qt-gui,
在菜单-开发中执行,填入src目录和build目录,点configure,来查看将要安装的模块 OPENCV_EXTRA_MODULES_PATH项中加入contrib/module的真实路径,再点configure选择模块,每选择或修改一次都要点configure,确认没问题后点generate生成make文件。

  • 路径检查
 #系统中可能存在多份opencv,使用pkg-config查看安装的路径和版本
 #整个系统最好只有一份opencv,将其他删除,用下面命令检查路径
 pkg-config --cflags opencv4 #检查include路径
 pkg-config --libs opencv4 #检查lib路径
  • 使用pkg-config添加编译依赖
    #使用pkg-config可以简化opencv的编译,如
  g++ opencv_example.cpp `pkg-config --cflags opencv4` `pkg-config --libs opencv4` -o opencv_example

#注意上面不是单引号,是感叹号左边那个字符,新版本opencv搜出的libs里有个-lippicv,但这个在系统里没有,用sed去除