『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

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设