ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

cudann一定要配置好不然opencv配置cuda会失败的

我这里采用的是opencv4.5.5和相同版本的contribure

一.软件的安装

这个部分我装了太多的依赖具体是那些我已经记不清了所以先放我成功配置看的那篇博客的依赖

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake cmake-gui unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libgtk2.0-dev
sudo apt-get install libv4l-dev libxvidcore-dev libx264-dev libtbb2 libtbb-dev libdc1394-22-dev libjasper-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev liblapacke-dev gfortran
sudo apt-get install python3-dev
sudo apt-get install ffmpeg

cmake的安装

sudo apt-get install cmake-gui

二.cmake配置

这里我采用的的是.cache用的别人下好的东西来进行配置不然有些东西很难下载,白嫖某个大佬的连接

百度云:链接:https://pan.baidu.com/s/1XaYIAc6wDoWrtLaHRJs5Qg?pwd=kksk 提取码:kksk

下载好后复制到opencv的文件夹下,如果没有显示的话输入critl+H就可以了。contrib也可以放在这个文件夹下面

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

创建文件夹并进入

mkdir myopencv
cd myopencv
cmake-gui

进入后的c++界面

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

点击configure

如果卡在下载ippvc可以自己去下载对应版本的我这里放出我的版本的ippvc

链接: https://pan.baidu.com/s/1C05qBz-eSAUIxdwljce0kw 密码: 4q33

然后修改/home/yuesang/software/opencv-4.5.5/3rdparty/ippicv下的ippicv的cmake文件,先把下载好的ippicv放入这个文件夹

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

然后编辑ippicv.cmake文件

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

这里我把本来的download注释了并且增加了set(res TRUE)

成功后的界面

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

OPENCV_GENERATE_PKGCONFIG这个选项记得要勾起来
OpenCV4以上默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能(这个没有勾选的话可能无法配置到clion)

去掉这些选项(可以搜索java,python,calib3d把这些包去除)

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

contrib路径的添加 (记得要定位到contib下的modules)

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

直接搜索cuda

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

configure完成后

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

再次点击cofigure

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

没有报错且变成白色应该就成功了吧然后点击generate生成

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

进入刚刚创建的文件夹,并且打开终端

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

输入

sudo make -j20
#这个20是你的核心数

人生没有一帆风顺出现报错了怎么办

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

进入这个页面找到报错的地方把他删掉(就像人生一样要学会合理的放弃)

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

重新配置和生成,然后继续cmake,重复以上操作直到编译成功为止

calib3d和stereo好像是关联的两个包可以取消(这两个包是双目相机标定的好像)

终于完成了真心不容易阿

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

安装以下

sudo make install

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

解压刚刚下载的ippicv进入找到ippicv_lnx

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

没有这个文件夹我们就建立一个

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

复制进来

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

重新下载 (大功告成)

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

环境变量的配置

sudo gedit /etc/ld.so.conf

输入这两行

include /etc/ld.so.conf.d/*.conf
include /usr/local/lib

然后再输入

sudo ldconfig
sudo gedit /etc/profile

添加这两行

opencv

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

然后编译一下

source /etc/profile

配置pkg-config环境

opencv4.pc文件的默认路径:/usr/local/lib/pkgconfig/opencv4.pc
若此目录下没有,可以使用以下命令搜索:

sudo find / -iname opencv4.pc

确实有

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

将路径加入到PKG_CONFIG_PATH

sudo gedit /etc/profile.d/pkgconfig.sh

输入

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

激活一下

source /etc/profile

验证是否成功

pkg-config --libs opencv4

成功啦

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

配置动态库环境

sudo gedit /etc/ld.so.conf.d/opencv4.conf

加入下面这行

/usr/local/lib

生效一下

sudo ldconfig

测试

进入到/samples/cpp/example_cmake下面

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

打开终端输入

cmake .

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

然后

make .

应该是成功了

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

这个时候我们看一下文件夹下面出现了一个opencv-example

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)
运行后出现我人太丑就不放照片了

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

这样opencv的编译到此完成。

三.Clion

创建desktop文件

cd ~/.local/share/applications/
sudo gedit Clion.desktop

注意看注释

[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Clion
Exec=/home/yuesang/software/clion-2022.2.1/bin/clion.sh
注意:Exec表示安装软件的启动快捷方式文件路径
注意:Icon表示安装软件的图标路径
Icon=/home/yuesang/software/clion-2022.2.1/bin/clion.png
NoDisplay=false
StartupWMClass=

接下来是cmakelist的文件编写

这里我放上我的cmakelist

cmake_minimum_required(VERSION 3.23)
project(test)

find_package(OpenCV REQUIRED) #加这一句
include_directories(${OpenCV_INCLUDE_DIRS}) #加这一句

set(CMAKE_CXX_STANDARD 14)

add_executable(test main.cpp)

target_link_libraries(test ${OpenCV_LIBS})#加这一句

测试代码

#include<opencv2 opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(int argc,char** argv){
    Mat src = imread("/home/yuesang/CLionProjects/test/1.jpg"); //&#x8BFB;&#x53D6;&#x56FE;&#x7247;
    if (src.empty()) {                     //&#x5224;&#x65AD;&#x662F;&#x5426;&#x627E;&#x5230;&#x56FE;&#x7247;
        printf("&#x6CA1;&#x6709;&#x627E;&#x5230;&#x56FE;&#x7247; ");           //&#x8F93;&#x51FA;&#x6587;&#x5B57;
        return -1;
    }
    else
    {
        namedWindow("input",WINDOW_AUTOSIZE);// &#x663E;&#x793A;&#x7A97;&#x53E3;&#x547D;&#x540D;&#x4E3A;input &#xFF1B;WINDOW_AUTOSIZE&#x663E;&#x793A;&#x5927;&#x5C0F;&#x4E3A;&#x56FE;&#x7247;&#x81EA;&#x5B9A;&#x4E49;&#x5927;&#x5C0F;&#xFF0C;&#x4E14;&#x4E0D;&#x53EF;&#x4EE5;&#x66F4;&#x6539;&#x5927;&#x5C0F;
        imshow("input",src); //&#x663E;&#x793A;
        waitKey(0);//&#x663E;&#x793A;&#x7684;&#x6BEB;&#x79D2;&#x65F6;&#x95F4;&#xFF0C;&#x5982;&#x679C;&#x51FD;&#x6570;&#x53C2;&#x6570;<=0表示一直显示。>0&#x8868;&#x793A;&#x663E;&#x793A;&#x7684;&#x65F6;&#x95F4;
        destroyAllWindows();
        return 0;

    }
}</=0表示一直显示。></iostream></opencv2>

终于配完了

ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

四.opencv的卸载

sudo make uninstall
cd ..

sudo rm -r mybuild
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
cd /usr/
find . -name "*opencv*" | xargs sudo rm -rf

环境变量那块 之前是忘记配置opencv4.pc了所以导致实例可以正常运行但是clion里面运行不了代码,环境变量那块自己也弄得有点迷糊

ubuntu22的坑还是有一些的,比如openvion好像是没办法装到上面因为openvion只支持到20,有什么错误或者不懂的欢迎大家给我指出

Original: https://blog.csdn.net/weixin_45730632/article/details/126723816
Author: hy不会视觉
Title: ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/651932/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球