『heqingchun-Ubuntu系统+x86架构+编译安装OpenCV+带有nvidia硬件加速』

本文主要是介绍『heqingchun-Ubuntu系统+x86架构+编译安装OpenCV+带有nvidia硬件加速』,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Ubuntu系统+x86架构+编译安装OpenCV+带有nvidia硬件加速

一、准备文件

1.OpenCV源码下载

(1)opencv-4.5.5.zip

官网下载
网址:

https://github.com/opencv/opencv/tree/4.5.5

操作:
点击"Code"下的"Download ZIP"
下载得到opencv-4.5.5.zip压缩文件

(2)opencv_contrib-4.5.5.zip

官网下载
网址:

https://github.com/opencv/opencv_contrib/tree/4.5.5

操作:
点击"Code"下的"Download ZIP"
下载得到opencv_contrib-4.5.5.zip压缩文件

2.其他文件

(1)cache.zip

注:此文件为OpenCV编译时需要下载的文件,下载速度极慢,下载不成功会导致编译失败,所以提前下载好放入正确路径即可
CSDN资源:计算机视觉+OpenCV+编译时需要下载的文件

(2)Video_Codec_SDK_12.0.16.zip

官网下载
网址:

https://developer.nvidia.com/nvidia-video-codec-sdk

操作:
下载Video_Codec_SDK_12.0.16.zip

3.将文件按以下顺序存放

新建"opencv"目录

mkdir opencv

"opencv-4.5.5.zip"放入opencv目录
"opencv_contrib-4.5.5.zip"放入opencv目录
"cache.zip"放入opencv目录
"Video_Codec_SDK_12.0.16.zip"放入opencv目录

二、更新、安装基础依赖

sudo apt update && \
sudo apt upgrade -y && \
sudo apt install -y build-essential cmake python

三、安装cmake依赖

1.终端apt依赖

(1)gtk
sudo apt install -y libgtk2.0-dev \
libcanberra-gtk-module
(2)opengl
sudo apt install -y libgl1-mesa-dev \
libglew-dev \
libsdl2-dev \
libsdl2-image-dev \
libglm-dev \
libfreetype6-dev \
libglfw3-dev \
libglfw3 \
libglu1-mesa-dev \
freeglut3-dev \
libgtkglext1 \
libgtkglext1-dev
(3)gstreamer
sudo apt install -y libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
gstreamer1.0-doc \
gstreamer1.0-tools \
gstreamer1.0-x \
gstreamer1.0-alsa \
gstreamer1.0-gl \
gstreamer1.0-gtk3 \
gstreamer1.0-qt5 \
gstreamer1.0-pulseaudio

四、cmake

1.cmake前检查项

(1)检查目录是否存在,不存在创建
if [ -d "/usr/lib/x86_64-linux-gnu/gtkglext-1.0/include" ]
thenecho 'exists'
elsesudo mkdir -p /usr/lib/x86_64-linux-gnu/gtkglext-1.0/include
fi
(2)检查/usr/lib/x86_64-linux-gnu/目录下是否存在有关opengl库为红色,也就是链接失败的,如果有重新链接
cd /usr/lib/x86_64-linux-gnu && \
ls

如果有红色的重新链接,没有就跳过

sudo rm libEGL.so && \
sudo ln -s libEGL.so.1.1.0 libEGL.so && \
sudo rm libGLdispatch.so && \
sudo ln -s libGLdispatch.so.0 libGLdispatch.so && \
sudo rm libGLESv2.so && \
sudo ln -s libGLESv2.so.2.1.0 libGLESv2.so && \
sudo rm libGL.so && \
sudo ln -s libGL.so.1.7.0 libGL.so && \
sudo rm libGLX.so && \
sudo ln -s libGLX.so.0 libGLX.so

2.解压及建立build目录

(1)解压
unzip opencv-4.5.5 && \
unzip opencv_contrib-4.5.5.zip && \
unzip cache.zip && \
mv opencv_contrib-4.5.5 opencv-4.5.5 && \
mv cache opencv-4.5.5/.cache
(2)nvidia硬件加速
cd opencv

复制文件

unzip Video_Codec_SDK_12.0.16 && \
cd Video_Codec_SDK_12.0.16/Interface && \
sudo cp cuviddec.h nvcuvid.h nvEncodeAPI.h /usr/include

修改文件

old='PATHS "${CUDA_TOOLKIT_TARGET_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}"' && \
new='PATHS "${CUDA_TOOLKIT_TARGET_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}" "\/usr\/include"' && \
sed -i "s/$old/$new/g" opencv-4.5.5/cmake/OpenCVDetectCUDA.cmake && \
(3)建立build目录
cd opencv
mkdir -p opencv-4.5.5/build && \
cd opencv-4.5.5/build

3.执行cmake

注:以下两项需要根据自己电脑显卡进行更改,我的电脑是RTX3050所以是8.6
-D CUDA_ARCH_BIN=8.6
-D CUDA_ARCH_PTX=8.6
查询网址: 显卡算力查询

cmake -D CMAKE_INSTALL_PREFIX=/usr/local \
-D CMAKE_BUILD_TYPE=Release \
-D BUILD_opencv_world=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON \
-D ENABLE_FAST_MATH=ON \
-D BUILD_ITT=OFF \
-D WITH_ITT=OFF \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.5/modules \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GTK_2_X=ON \
-D WITH_OPENGL=ON \
-D WITH_VTK=ON \
-D WITH_OPENCL=ON \
-D WITH_V4L=ON \
-D BUILD_TBB=ON  \
-D WITH_TBB=ON \
-D WITH_OPENMP=ON \
-D WITH_XINE=ON \
-D WITH_LIBV4L=ON \
-D BUILD_opencv_videoio=ON \
-D OPENCV_VIDEOIO_CODEC_LIST="H264" \
-D OPENCV_DNN_CUDA=ON \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=8.6 \
-D CUDA_ARCH_PTX=8.6 \
-D CUDA_FAST_MATH=1 \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-D WITH_CUDNN=ON \
-D WITH_NVCUVID=ON \
-D WITH_CUBLAS=ON \
..

五、编译安装

1.编译

make -j $(nproc)

2.安装

sudo make install

六、配置环境

1.环境变量设置与更新

sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf.d/opencv.conf" && \
sudo ldconfig && \
sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf" && \
sudo ldconfig && \
str='export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:"$"PKG_CONFIG_PATH' && \
sudo sh -c "echo $str >> /etc/profile" && \
source /etc/profile

七、验证安装

查看opencv版本

pkg-config --modversion opencv4

执行结果如下:

4.5.5

Ubuntu系统+x86架构+编译安装OpenCV+带有nvidia硬件加速-完毕

这篇关于『heqingchun-Ubuntu系统+x86架构+编译安装OpenCV+带有nvidia硬件加速』的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/418943

相关文章

双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程

《双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程》:本文主要介绍如何在Windows11系统中使用VMware17创建虚拟机,并在虚拟机中安装Ubuntu22.04桌面版或Ubunt... 目录一、首先win11中安装vmware17二、磁盘分区三、保存四、使用虚拟机进行系统安装五、遇见的错误和解决

python+OpenCV反投影图像的实现示例详解

《python+OpenCV反投影图像的实现示例详解》:本文主要介绍python+OpenCV反投影图像的实现示例详解,本文通过实例代码图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前言二、什么是反投影图像三、反投影图像的概念四、反向投影的工作原理一、利用反向投影backproj

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Win安装MySQL8全过程

《Win安装MySQL8全过程》:本文主要介绍Win安装MySQL8全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Win安装mysql81、下载MySQL2、解压文件3、新建文件夹data,用于保存数据库数据文件4、在mysql根目录下新建文件my.ini

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登