Ubuntu 18.04.5 和20.04 安装 OpenCV3.2.0


系统配置: I9, rtx3090, cuda-11.2, nvcc-9.1, gcc-5 (opencv3.2支持的gcc版本不能高于gcc-8)
说明: 错误很多,根据网上教程修改,修改后以提交gitee库。也就是说直接从我的gitee库克隆并安装,应该会避免很多错误。
在这里插入图片描述

1、更新系统,安装必要的包

 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
 sudo apt update
 sudo apt-get install build-essential
 sudo apt install gcc-5 g++-5
 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libeigen3-dev
 sudo apt-get install python-dev-is-python3 python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper1 libjasper-dev libdc1394-22-dev

2、下载opencv3.2

OpenCV-3.2.0 (包含OpenCV-Contrib-3.2.0)

git clone https://gitee.com/yxd.osc.com/opencv32.git
mv opencv32 opencv
cd opencv
mkdir build && cd build

3、Configure

可以使用cmake-gui ../opencv进行可视化编译,配置参考下面。

cmake ../opencv \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv3 \
-DOPENCV_EXTRA_MODULES_PATH=/home/bbnc/opencv32/opencv_contrib/modules \
-DBUILD_DOCS=ON \
-DBUILD_EXAMPLES=ON \
-DPYTHON3_EXECUTABLE=/usr/bin/python3 \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.6 \
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
-DPYTHON3_NUMPY_INCLUDE_DIRS=/home/bbnc/.local/lib/python3.6/site-packages/numpy/core/include \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DWITH_GTK_2_X=ON \
-DWITH_OPENGL=ON \
-DCMAKE_C_COMPILER=gcc-5 \
-DCMAKE_CXX_COMPILER=g++-5 \
-DWIHT_CUDA=ON \
-DCUDA_GENERATION=Kepler \
-DCUDA_ARCH_BIN=8.6 \
-DCUDA_ARCH_PTX="" \
-DWITH_V4L=ON \
-DWITH_TBB=ON

ERROR (在gitee库中以解决下述问题,写在此处只为记录过程,错误较多未能全部列出):

  1. CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
    解决办法: https://stackoverflow.com/questions/46584000/cmake-error-variables-are-set-to-notfound
  2. /usr/include/c++/5/bits/c++0x_warning.h:32:2 This file requires compiler and library, 需要c++11支持。
    解决办法: 打开Opencv/CMakeLists.txt, 添加“add_definitions(-std=c++11)”
  3. OpenGL无法开启在OpenCV编译过程中。
    解决方法: 添加-DWITH_GTK_2_X=ON
include(cmake/OpenCVMinDepVersions.cmake)

add_definitions(-std=c++11)

if(CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3)
  cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)

4、Build

make -j14

(-j后面的数字代表多线程,请根据自己的电脑配置设置,官网默认为7)

5、Install

sudo make install

6、 3.2和4.5版本切换

OpenCV版本查看

python3
import cv2
cv2.__version__

我在ubuntu18.04.5上同时安装了OpenCV3.2和4.5,默认是4.5版本。想要使用3.2,进入opencv32的build目录。想要切换回4.5,进入OpenCV4.5的build目录,使用同样的操作。

cp lib/python3/cv2.cpython-36m-x86_64-linux-gnu.so /home/bbnc/.local/lib/python3.6/site-packages/

说明:寻找自己的site-packages路径的方法,python的第三方包都存在此处。

python3 -m pip install numpy
python3
import numpy
numpy.__path__

2021.08.18更新,在ubuntu20.04上安装

*在Ubuntu20.04上编译成功!!!*与ubuntu18.04的区别在于使用cmake-gui ../opencv可视化编译。
说明: 1. 在步骤1安装必要的包时,涉及jasperl的两个包未安装成功,但是后续好像也没有影响。
2. 可视化界面中的配置,依旧参考上述Configure中的内容。
3. CUDA_GENERATION=Kelper,解决GPU版本太高导致unsupport的错误。
4. 错误:CMake Error at cmake/OpenCVCompilerOptions.cmake:21 (else) 。解决方法:找到对应的文件,把21行注释掉即可。
5. 错误:CUDA_nppicom_LIBRARY。解决方法:进入opencv/cmake/FindCUDA.cmake, 把包含nppicom的地方注释或删除就可以,我记得有3个地方。
在build目录执行cmake-gui ../opencv 此处参考Configure中的配置,注意检查路径是否存在,比如20.04默认使用python3.8,检查numpy是否安装等等。(下图是为写博客重新打开的,与初次打开可能不同)
在这里插入图片描述
点击界面中的Configure,使用unix makefile编译,而不是gcc,尝试gcc失败了。如果使用gcc,选择Specify native compilers,opencv3.2支持gcc版本不能高于gcc-8。
在这里插入图片描述
点击Finish,再点击Generate。然后就可以回到终端的build目录执行make -j40和sudo make install。安装成功后测试一下。
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值