jeston编译配置cuda加速版opencv

embedded/2024/10/22 9:49:29/

1.源码下载连接

opencv:Releases - OpenCV

opencv-contrib:  https://github.com/opencv/opencv_contrib

建议不要下最新版本 一般我会下4.5.4  // 4.5.6 // 4.6.0 opencvopencv-contrib版本要对齐

将下好的opencvopencv-contrib解压 将opencv-contrib解压到opencv的文件夹中

2.卸载无cuda加速的opencv

买板子时,商家装的系统一般会带cpu版本的opencv 如下面的图所示 cuda显示NO 同时记一下你的CUDA arch BIN的数值 后面编译会用到,我的是8.7

可以通过在命令行输入下面这个命令查看

sudo jtop

 没有这个命令的可以参考下面的文章安装

 https://blog.csdn.net/qq_46941656/article/details/119570425

在命令行输入下列三行指令卸载cpu版本opencv

sudo apt purge libopencv*
sudo apt autoremove
sudo apt update

3.安装依赖库

正式编译安装opencv前需要先安装一些依赖库 一定要确保全部安装成功!

sudo apt install -y build-essential checkinstall cmake pkg-config yasm git gfortran
sudo apt update
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install -y libjpeg8-dev libjasper-dev libpng12-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
遇到的问题:

1.无法定位libjasper-dev软件包

解决方法

sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-dev

 2.最后一行的python-dev无法安装

解决方法 安装python3-dev替换它

sudo apt install python3 python3-dev

总之 基本问题换源或者替换版本就能解决 有其他问题及时搜索解决 一定要确保依赖项安装成功

4.编译安装opencv

新建build文件夹

cd opencv-4.6.0
mkdir build
cd build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_ENABLE_NONFREE=1 \
-DBUILD_opencv_python2=1 \
-DBUILD_opencv_python3=1 \
-DWITH_FFMPEG=1 \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_ARCH_BIN=8.7 \
-DCUDA_ARCH_PTX=8.7 \
-DWITH_CUDA=1 \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DOPENCV_GENERATE_PKGCONFIG=1 \
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.6.0/modules \
..

 编译 (大概1-3小时)

make -j4 

安装

sudo make install

5.验证是否安装成功

输入jtop再次查看 发现CUDA变为YES 

或者在命令行中输入python3代开python在import cv2 看是否成功

python3
import cv2
cv2.__version__
遇到的问题:

1.我在安装完成后发现jtop变为YES 但是命令行中却不能import成功

这是因为我的python没有cv路径

需要找到cv包的实际安装路径(我是用find指令找到的)把它加到python的系统路径中

sudo find -name"cv2*.* 2>/dev/null
import sys
sys.path.append('/usr/local/lib/python3.8/site-packages')


http://www.ppmy.cn/embedded/129528.html

相关文章

Git的原理和使用(五)

场景: 目标:远程master分支下新增function1和function2文件; 实现:由开发者1新增function1,由开发者2新增function2; 条件:在不同分支下协作完成;各自让某一个功能私有某一个分支&am…

MySQL数据库操作——(4)

目录 8 视图 8.1 常见的数据库对象 8.2 视图概述 8.2.1 为什么使用视图? 8.2.2 视图的理解 8.3 创建视图 8.3.1 创建单表视图 8.3.2 创建多表联合视图 8.3.3 基于视图创建视图 8.4 查看视图 8.5 更新视图的数据 8.5.1 一般情况 8.6 修改、删除视图 8.…

Vue 项目中 Webpack 常见问题详解

前言 在Vue.js项目中,Webpack 作为打包工具,处理各种静态资源和模块化的代码打包需求。尽管 Webpack 在 Vue CLI 项目中已经配置好了一些默认行为,但开发者在实际项目中仍然会遇到许多与资源管理、public 和 assets 目录、require 语法等相关…

使用verilog设计实现的数字滤波器(低通、高通、带通)及其仿真

以下是一个简单的使用Verilog设计数字滤波器(以有限脉冲响应(FIR)滤波器为例,实现低通、高通、带通滤波器)的基本步骤和代码框架: 一、FIR滤波器原理 FIR滤波器的输出 y [ n ] y[n] y[n] 是输入信号

大数据治理:从挑战到最佳实践

引言 随着大数据技术的快速发展,各类组织和企业积累了海量的数据资产。然而,数据的复杂性、异构性和庞大规模也带来了数据管理和利用的诸多挑战。为了确保数据的高效利用、安全性以及合规性,大数据治理应运而生。大数据治理不仅仅是管理数据的存储和处理,它更是一项系统性…

【网络安全】从NA到P1,我是如何扩大思路的?

未经许可,不得转载。 文章目录 正文正文 在这篇文章中,我将向大家展示一个我发现的漏洞,该漏洞利用了一个硬编码的 Basic 认证头,获取了管理员权限。 首先,假设公司域名为“target.com”。 第一步是使用多种工具(如 Amass、subfinder、findomain 等)收集与该组织相关…

期权懂|期权止损策略如何平衡风险与收益?

本期让我懂 你就懂的期权懂带大家来了解,期权止损策略如何平衡风险与收益?有兴趣的朋友可以看一下。期权小懂每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 期权止损策略如何平衡风险与收益? 期权止损…

微信小程序canvas 生成二维码图片,画图片,生成图片,将两个canvas结合并保存图片

需求实现步骤如下 先定义两个canvas一个canvas myQrcode画二维码的图片另一个canvas mycanvas画一个背景图,并把二维码画到这个canvas上,mycanvas这个canvas生成一张图片,返回图片的临时路径最后保存图片到手机 首先wxml,新版微信小程序can…