Ubuntu 18.04 源码编译安装 OpenCV 3.4.5 步骤 【自用】

安装环境

  1. OS:Ubuntu 18.04 64 bit
  2. 显卡:NVidia RTX 2080Ti
  3. CUDA:10.1
  4. cnDNN:7.5
  5. cmake: 3.10.2

目标

  1. 源码编译安装 OpenCV 3.4.5

安装依赖

$ sudo apt install -y build-essential cmake git pkg-config libgtk2.0-dev libopenexr-dev 
$ sudo apt install -y gfortran libblas-dev liblapack-dev libeigen3-dev 
$ sudo apt install -y python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
$ sudo apt update
$ sudo apt install libjasper1 libjasper-dev 
$ sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
$ sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libavresample-dev libxvidcore-dev libx264-dev libv4l-dev

下载源码

  1. 下载 3.4.5 版本的 opencvopencv_contrib 源码压缩包。
  2. 因为两个压缩包的文件名相同,分别改名为 opencv.zip 和 opencv_contrib.zip,然后解压到同一文件夹下。
$ unzip opencv.zip
$ unzip opencv_contrib.zip

预准备

  1. 下载 ippicv_2019_lnx_intel64_general_20180723.tgz,放置于某一文件夹:下载地址,密码:1miu
  2. 打开 opencv-3.4.5/3rdparty/ippicv/ippicv.cmake,将
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"

修改为

file:{$步骤1中的文件夹路径}
  1. {$opencv-3.4.5 的路径}/modules/stitching/src/precomp.hpp 中第 91 行的 opencv2/xfeatures2d/cuda.hpp 修改为 {$opencv_contrib-3.4.5 的路径}/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp
  2. {$opencv-3.4.5 的路径}/modules/stitching/include/opencv2/stitching/detail/matchers.hpp 中第 52 行的 opencv2/xfeatures2d/cuda.hpp 修改为 {$opencv_contrib-3.4.5 的路径}/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp
  3. 若后续 make 的时候还有相似的找不到文件的错误,参考步骤 3 和 4 的做法。

编译代码

  1. 进入解压出的 opencv 目录,创建 build 目录,按需配置 cmake 参数并执行,再 make,最后 make install。
  2. 根据需要配置需要编译的模块,如下例子所示:
$ cd opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.5/modules \
    -D PYTHON3_EXECUTABLE=~/.virtualenvs/{$虚拟环境名称}/bin/python\  # 不加这行则使用系统python
    -D BUILD_EXAMPLES=ON ..
$ make
$ sudo make install
$ sudo ldconfig
  1. python2 创建链接:
$ cd ~/.virtualenvs/cv2/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
  1. python3 创建链接:
$ cd /usr/local/lib/python3.6/site-packages/cv2/python-3.6/
$ sudo mv cv2.cpython-36m-x86_64-linux-gnu.so cv2.so
$ cd ~/.virtualenvs/cv/lib/python3.6/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2/python-3.6/cv2.so cv2.so

验证安装

  1. 查看版本:
$ python
Python 3.6.9 (default, Apr 18 2020, 01:56:04)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.5'

错误

  1. 如果 sudo ldconfig 时出现下面错误:
/sbin/ldconfig.real: /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7 is not a symbolic link
  1. 解决方案:
$ cd /usr/local/cuda/lib64
$ ls -lha libcudnn*
-rwxr-xr-x 3 root root 333M Jan 27 17:06 libcudnn.so
-rwxr-xr-x 3 root root 333M Jan 27 17:06 libcudnn.so.7
-rwxr-xr-x 3 root root 333M Jan 27 17:06 libcudnn.so.7.5.0
-rw-r--r-- 1 root root 331M Jan 27 17:06 libcudnn_static.a
$ sudo cp libcudnn.so libcudnn.so.bk
$ sudo cp libcudnn.so.7 libcudnn.so.7.bk
$ sudo rm libcudnn.so
$ sudo rm libcudnn.so.7
$ sudo ln -sf libcudnn.so.7.5.0 libcudnn.so.7
$ sudo ln -sf libcudnn.so.7 libcudnn.so
$ sudo ldconfig
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值