您的位置:首页 > 运维架构

Ubuntu16.04 + 源码编译OpenCV3.4.2

2018-10-15 15:48 477 查看

Ubuntu16.04 + 源码编译OpenCV3.4.2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26239525/article/details/83059905

ubuntu基本环境配置请参考:
Ubuntu16.04 + cuda9.0 + cudnn_v7 + tensorflow-gpu + opencv3.4.2: https://blog.csdn.net/qq_26239525/article/details/82714116

OpenCV3.4.2源码下载:
https://codeload.github.com/opencv/opencv/zip/3.4.2

opencv_contrib-3.4.2.tar.gz下载:
https://codeload.github.com/opencv/opencv_contrib/tar.gz/3.4.2

ippicv_2017u3_lnx_intel64_general_20180518.tgz下载:
https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_[日期]/ippicv
比如我要用的3.4.2要求20180518这个版本,直接把[日期]替换成20180518即可,如下:
https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180518/ippicv

face_landmark_model.dat下载:
https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat

安装过程:

1. 先安装依赖库 libgtk2.0-dev 和 pkg-config,否则后期编译会出现如下的问题:

The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support.
If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script)
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

2. 安装依赖库:

sudo apt-get install build-essential
sudo apt-get install cmake cmake-gui git 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 libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg

3. 安装OpenCV

mkdir ~/opencv
# 将下载的文件拷贝到opencv目录下
unzip opencv-3.4.2.zip
tar zxvf 3.4.2.tar.gz

cd ~/opencv
mkdir opencv-3.4.2-build

# 将ippicv_2017u3_lnx_intel64_general_20180518.tgz文件拷贝到~/opencv/opencv-3.4.2-build
# 终端输入
sudo gedit ~/opencv/opencv-3.4.2/3rdparty/ippicv/ippicv.cmake

将47行的:
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
更换成:
"file:///home/x919/opencv/opencv-3.4.2-build"  # x919换成自己的用户名
编辑完成,保存退出。

在编译过程中,由于需要从外网下载face_landmark_model.dat

所以需要将之前下载的face_landmark_model.dat放到到本地目录下,以便于编译过程从本地寻找文件,加速安装过程
sudo cp ~/下载/face_landmark_model.dat ~/opencv/opencv-3.4.2/.cache/data/
然后需要更改此face_landmark_model.dat文件的名字
ls ~/opencv/opencv-3.4.2/.cache/data
应该是会有两个文件
cd ~/opencv/opencv-3.4.2/.cache/data
sudo cp face_landmark_model.dat 7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat
每台机器应该不一样

到此准备工作就完成了,然后开始安装opencv3.4.2

# 终端输入
cmake-gui

更改这两个文件路径,然后点击configure,然后选择Unix Makefiles,选择Use default native compliers,然后点击Finish。

然后cmake就会载入默认配置。如下图所示:

将CMAKE_BUILD_TYPE更改为Release。然后Search python3,将路径更改为Anaconda下的python3下的路径,如下图所示:

将OPENCV_EXTRA_MODULES更改为以下路径:

然后点击Generate生成配置文件。

接下来进入opencv-3.4.2-build

cd ~/opencv/opencv-3.4.2-build

make -j8
sudo make install
完成编译安装

然后配置系统环境变量:
sudo gedit /etc/ld.so.conf.d/opencv.conf

将以下内容添加进去:
/usr/local/lib

sudo ldconfig #配置库
sudo gedit /etc/bash.bashrc
在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,然后关闭终端使配置生效。

测试:

import cv2
img = cv2.imread('~/opencv入门/image.jpg',1)
cv2.imshow('image',img)
cv2.waitKey (0)
"libopencv_hdf.so.3.4: cannot open shared object file: No such file or directory"
如果报出此错误,则:
sudo find / -name "libopencv_hdf.so.3.4"

sudo gedit /etc/ld.so.conf.d/opencv.conf
将下句添加到文件末尾:
/home/x919/opencv/opencv-3.4.2-build/lib
sudo ldconfig

重新测试即可正常显示图片。
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: