Ubuntu安装Opencv、opencv_contrib、cuda(都是细节)

如要用windows的msvc编译opencv,参考我另外一篇文章

windows编译opencv、opencv-python、opencv_contrib、cuda-CSDN博客。

如要用windows的mingw编译opencv,参考我另外一篇文章

https://blog.csdn.net/weixin_44733606/article/details/135741806

一、安装准备

1、安装依赖

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

 安装python,这里是3.10,可改命令后缀更换版本

sudo apt-get install python3.10

安装pip

sudo apt install python3-pip

安装numpy

pip install numpy

安装tbb,jpeg,png,tiff

sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev

2、下载opencv源码,我选4.5.5

https://opencv.org/releases/

下载opencv_contrib https://github.com/opencv/opencv_contrib

二、编译

1、进入opencv文件夹

cd opencv-4.5.5
mkdir build
cd build

2、接下来cmake步骤,可能下载失败看我另一篇文章https://blog.csdn.net/weixin_44733606/article/details/131721057

(1)、不编译opencv_contrib、cuda

cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=True ..

注解:
1. CMAKE_INSTALL_PREFIX 是opencv的安装地址 默认安装在 usr/local
2. CMAKE_BUILD_TYPE 是opencv安装的版本,Release和Debug两种可选,默认安装Release
3. OPENCV_ENABLE_NONFREE 是否使用部分被申请了专利的算方法 这里选True的话就可以使用了
4. OPENCV_GENERATE_PKGCONFIG 强烈建议开启这个 设置为ON OPENCV_GENERATE_PKGCONFIG 因为opencv4默认不生成.pc文件,所以加上这句用于生成opencv4.pc文件,支持pkg-config功能。opencv4版本及以上 这里用ON。

(2)、编译opencv_contrib,不编译cuda

cmake -D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
	-D INSTALL_PYTHON_EXAMPLES=ON \
	-D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
	-D OPENCV_ENABLE_NONFREE=ON \
	-D OPENCV_DNN_CUDA=ON \
	-D ENABLE_FAST_MATH=1 \
	-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
	-D HAVE_opencv_python3=ON \
	-D PYTHON_EXECUTABLE=usr/bin/python3 \
	-D BUILD_EXAMPLES=ON ..

(3)、编译opencv_contrib、cuda

cmake -D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
	-D INSTALL_PYTHON_EXAMPLES=ON \
	-D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
	-D OPENCV_ENABLE_NONFREE=ON \
	-D WITH_CUDA=ON \
	-D WITH_CUDNN=ON \
	-D OPENCV_DNN_CUDA=ON \
	-D ENABLE_FAST_MATH=1 \
	-D CUDA_FAST_MATH=1 \
	-D CUDA_ARCH_BIN=7.5 \
	-D WITH_CUBLAS=1 \
	-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
	-D HAVE_opencv_python3=ON \
	-D PYTHON_EXECUTABLE=usr/bin/python3 \
	-D BUILD_EXAMPLES=ON ..

从上,WITH_CUDA和WITH_CUDNN项指的是用CUDA和cuDNN。OPENCV_DNN_CUDA项表示我们要编译后的dnn模块支持CUDA。ENABLE_FAST_MATH, CUDA_FAST_MATH和WITH_CUBLAS项是为了优化运算而开启的。

CUDA_ARCH_BIN项的GPU框架版本号很重要,看我另一篇文章查询方法

https://blog.csdn.net/weixin_44733606/article/details/131721081

,因为如果这个值填错,使用dnn模块时可能会出现以下问题:

cv2.error: OpenCV(4.5.5) /home/waltpeter/opencv/modules/dnn/src/cuda/execution.hpp:52: error: (-217:Gpu API call) invalid device function in function 'make_policy'

3、cmake结束后make
注:终端输入nproc 命令可以查看自己电脑有多少线程。我的电脑有8个。

sudo make -j8

4、安装

sudo make install

 三、环境配置

1、修改etc/bash.bashrc

我们之前安装的时候 OPENCV_GENERATE_PKGCONFIG=ON 所以在/usr/local/lib/pkgconfig下生成了opencv4.pc文件,里面记录了OpenCV头文件、库文件的路經。需要进行如下配置:

sudo nano /etc/bash.bashrc

文件末尾添加以下内容并保存

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

 2、修改动态库

sudo nano /etc/ld.so.conf.d/opencv.conf

 文件末尾添加以下内容 并保存

/usr/local/lib

 更新

sudo ldconfig

三、检查安装情况

查看版本号

pkg-config --modversion opencv4

查看libs库 

pkg-config --libs opencv4

你可能感兴趣的:(open,cv,ubuntu,opencv)