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
这里我采用的的是.cache用的别人下好的东西来进行配置不然有些东西很难下载,白嫖某个大佬的连接
百度云:链接:https://pan.baidu.com/s/1XaYIAc6wDoWrtLaHRJs5Qg?pwd=kksk 提取码:kksk
下载好后复制到opencv的文件夹下,如果没有显示的话输入critl+H就可以了。contrib也可以放在这个文件夹下面
创建文件夹并进入
mkdir myopencv
cd myopencv
cmake-gui
进入后的c++界面
点击configure
如果卡在下载ippvc可以自己去下载对应版本的我这里放出我的版本的ippvc
链接: https://pan.baidu.com/s/1C05qBz-eSAUIxdwljce0kw 密码: 4q33
然后修改/home/yuesang/software/opencv-4.5.5/3rdparty/ippicv下的ippicv的cmake文件,先把下载好的ippicv放入这个文件夹
然后编辑ippicv.cmake文件
这里我把本来的download注释了并且增加了set(res TRUE)
成功后的界面
OPENCV_GENERATE_PKGCONFIG这个选项记得要勾起来
OpenCV4以上默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能(这个没有勾选的话可能无法配置到clion)
去掉这些选项(可以搜索java,python,calib3d把这些包去除)
contrib路径的添加(记得要定位到contib下的modules)
直接搜索cuda
configure完成后
再次点击cofigure
没有报错且变成白色应该就成功了吧然后点击generate生成
进入刚刚创建的文件夹,并且打开终端
输入
sudo make -j20
#这个20是你的核心数
人生没有一帆风顺出现报错了怎么办
进入这个页面找到报错的地方把他删掉(就像人生一样要学会合理的放弃)
重新配置和生成,然后继续cmake,重复以上操作直到编译成功为止
calib3d和stereo好像是关联的两个包可以取消(这两个包是双目相机标定的好像)
终于完成了真心不容易阿
安装以下
sudo make install
解压刚刚下载的ippicv进入找到ippicv_lnx
没有这个文件夹我们就建立一个
复制进来
重新下载 (大功告成)
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
opencv4.pc文件的默认路径:/usr/local/lib/pkgconfig/opencv4.pc
若此目录下没有,可以使用以下命令搜索:
sudo find / -iname opencv4.pc
确实有
将路径加入到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
成功啦
sudo gedit /etc/ld.so.conf.d/opencv4.conf
加入下面这行
/usr/local/lib
生效一下
sudo ldconfig
进入到/samples/cpp/example_cmake下面
打开终端输入
cmake .
然后
make .
应该是成功了
这个时候我们看一下文件夹下面出现了一个opencv-example
这样opencv的编译到此完成。
创建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
#include
using namespace std;
using namespace cv;
int main(int argc,char** argv){
Mat src = imread("/home/yuesang/CLionProjects/test/1.jpg"); //读取图片
if (src.empty()) { //判断是否找到图片
printf("没有找到图片 "); //输出文字
return -1;
}
else
{
namedWindow("input",WINDOW_AUTOSIZE);// 显示窗口命名为input ;WINDOW_AUTOSIZE显示大小为图片自定义大小,且不可以更改大小
imshow("input",src); //显示
waitKey(0);//显示的毫秒时间,如果函数参数<=0表示一直显示。>0表示显示的时间
destroyAllWindows();
return 0;
}
}
终于配完了
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,有什么错误或者不懂的欢迎大家给我指出