ubuntu22.04系统安装Opencv4.8.0+Opencv-contrib4.8.0

一、安装下载所需工具

1.打开终端,输入以下命令来更新软件源:
sudo apt-get update
2.安装wget:
sudo apt-get install wget
3.下载opencv和opencv-contrib包:
wget -O opencv-4.8.0.zip https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip
wget -O opencv-contrib-4.8.0.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.0.zip

解压opencv-4.8.0.zip和opencv-contrib-4.8.0.zip,并解压出来的文件放在任意你喜欢的位置。

二、安装opencv依赖包

sudo apt-get install build-essential \
cmake \
git \
pkg-config \
libgtk-3-dev \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libv4l-dev \
libxvidcore-dev \
libx264-dev \
libjpeg-dev \
libpng-dev \
libtiff-dev \
gfortran \
openexr \
libatlas-base-dev \
python3-dev \
python3-numpy \
libtbb2 \
libtbb-dev \
libdc1394-dev \
libopenexr-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer1.0-dev \
libopencv-highgui-dev

如果以上依赖安装报网络错误可以使用如下指令更换下载源为‘豆瓣源’

sudo add-apt-repository ‘deb http://security.ubuntu.com/ubuntu xenial-security main’
sudo apt update

三、编译opencv

1.首先我们来到第一节最后你喜欢放opencv和opencv-contrib文件夹的那个位置,在当前窗口右键‘在终端打开’,在打开的终端里输入:
mv opencv_contrib-4.8.0 opencv-4.8.0

该指令是将opencv_contrib_4.8.0文件夹放入opencv-4.8.0文件夹下,再执行:

cd opencv-4.8.0

该指令是前往opencv-4.8.0文件夹下,再执行:

mkdir build
cd build

该指令是在当前目录下新建build文件夹,并进入build文件夹下。

2.使用如下指令进行预编译:
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D CMAKE_C_COMPILER=/usr/bin/gcc-11 \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_opencv_python3=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_TBB=ON \
-D OPENCV_DNN_CUDA=OFF \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=8.9 \
-D WITH_CUBLAS=1 \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/ub/opencv-4.8.0/opencv_contrib_4.8.0/modules \
-D CUDNN_LIBRARY=/usr/lib/x86_64-linux-gnu/libcudnn.so.8.9.0 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda-11.8/targets/x86_64-linux/include  \
-D CUDA_CUDA_LIBRARY=/usr/local/cuda-11.8/targets/x86_64-linux/lib/stubs/libcuda.so \
-D WITH_WEBP=OFF \
-D WITH_OPENCL=ON \
-D ETHASHLCL=OFF \
-D ENABLE_CXX11=ON \
-D BUILD_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D HAVE_opencv_python3=ON ..

此处预编译可能出现相应路径下找不到文件,因此按照自己电脑中cuda和cudnn安装的路径进行更改,其中本人由于安装cudnn时cudnn.h和libcudnn.so.8.9.0两个文件路径不对,因此此处解决方案是将两个文件找到之后,使用如下指令直接拷贝到报错处的目标文件夹下。

sudo cp /usr/include/cudnn.h /usr/local/cuda-11.8/targets/x86_64-linux/include/

因为该拷贝有权限限制,建议使用指令获取权限拷贝。

3.编译

预编译完成之后,使用下方指令查看电脑核数:

nproc

使用下方指令开始加速编译和下载:

sudo make -j24
sudo make install

编译成功如下界面:

再执行:

sudo /bin/bash -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

四、配置环境变量

使用如下指令打开bashrc并对bashrc文件进行编辑并保存。

sudo gedit ~/.bashrc

在打开的.bashrc最后添加如下语句:

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

保存并关闭,使用如下指令进行更新:

source ~/.bashrc

五、检查是否安装成功

检查opencv是否安装成功:

pkg-config --modversion opencv4
pkg-config --libs opencv4

打印如下界面,即是安装成功。

也可以使用如下程序对代码进行测试,showPhoto.cpp

#include<opencv2/opencv.hpp>
using namespace cv;

int main()
{
        Mat img = imread("./chart_yolov4_car_person_v7.png");
        imshow("LOVE", img);
        waitKey(0);
        return 0;
}

编译showPhoto.cpp运行

g++ -o main showPhoto.cpp `pkg-config opencv4 --cflags --libs`
./main

相关推荐

  1. Ubuntu安装Opencv + opencv_contrib(v4.9.0)

    2024-03-28 06:18:06       12 阅读
  2. ubuntu18.04安装opencv-4.5.5+opencv_contrib-4.5.5

    2024-03-28 06:18:06       42 阅读
  3. ubuntu系统opencv的编译安装

    2024-03-28 06:18:06       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-28 06:18:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-28 06:18:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-28 06:18:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-28 06:18:06       18 阅读

热门阅读

  1. docker安装postgresql数据库包含postgis扩张

    2024-03-28 06:18:06       20 阅读
  2. [XG] HTTP

    [XG] HTTP

    2024-03-28 06:18:06      19 阅读
  3. 前端学习-CSS基础-Day2

    2024-03-28 06:18:06       17 阅读
  4. 机器学习:理论、方法与应用实践

    2024-03-28 06:18:06       20 阅读
  5. 机器学习(复试)

    2024-03-28 06:18:06       20 阅读
  6. TensorFlow 的基本概念和使用场景

    2024-03-28 06:18:06       20 阅读
  7. 逆流而上的选择-积极生活,逆流而上

    2024-03-28 06:18:06       17 阅读
  8. 面试中常被问到的数据库面试题及答案

    2024-03-28 06:18:06       23 阅读
  9. React 18中hook函数详解之useRef

    2024-03-28 06:18:06       21 阅读