Jetson Xavier NX安装opencv3.4.5(小白教程)

2023-05-16

作为小白,近期开始上手嵌入式设备Jetson Xavier NX,系统为Ubuntu 18.04.6,而因项目开发环境需要Opencv3.4.5版本,预装系统内安装的是Opencv4.1.1,以下是本人结合网上的资料整理的一篇适合新手的环境配置opencv-3.4.5的文章,内有纰漏可私聊交流。

如有侵权,联系删除。

详细指令步骤可以参考下面这位老哥的博客:
Jetson Xavier NX安装opencv3.x以及踩过的坑
1. 查看已预安装Opencv版本

pkg-config --modversion opencv

2. 卸载原Opencv
这里可参考上面链接的卸载方法(适用于系统预安装的Opencv卸载

如果是==自己之前安装==的话,就找到当初安装Opencv的build文件夹路径(如果没有需要重新C-make编译一下),然后进入该build目录执行卸载操作:
cd .../opencv-4.x.x/build
sudo make uninstall
cd .../opencv-4.x.x
sudo rm -r build
  • 完成后将原本下载的opencv-4.x.x的文件夹删除即可
    现在再次查看自己的opencv版本号会显示No package ‘opencv’ found,即表示卸载成功,可以开始下一步了。
    在这里插入图片描述

3. 下载Opencv3.4.5.zip文件**

网盘链接:
链接:https://pan.baidu.com/s/1ef9YFsgs60qmlHfFtScrpQ 提取码:CGNB

下载后将压缩包解压到文件夹路径下,并新建一个名为build的文件夹。

4. 安装环境依赖项

这一步骤比较重要,如果没有安装更新的话,在后面编译过程中会出现报错

sudo apt-get installbuild-essential 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install --only-upgrade g++-5 cpp-5 gcc-5

更新后再安装Qt5

sudo apt-get install qt5-default

qt5必须要安装成功,不过丢包概率不大,都能装上的

5. 安装pip3

由于Jetson Xavier NX官方固件是不带pip的,所以我们需要手动安装pip3

sudo apt install python3-pip

python3的依赖项下载

sudo apt-get install python3-numpy
sudo apt-get install python3-matplotlib

安装完成后可以查阅pip3的版本号如下:
在这里插入图片描述

6. CUDA部分源码的修改

对于CUDA源码的修改,在查阅了许多篇文章后发现大致大同小异,但还是有些小坑,接下来会提到。

①先找到cuda_gl_interop.h文件,一般都是在/usr/local/cuda/include里,然后在命令框输入:

sudo gedit /usr/local/cuda/include/cuda_gl_interop.h

这时会弹出一个文件如下图:
在这里插入图片描述
找到红框内代码,并按照图中代码更改如下:

//#if defined(__arm__) || defined(__aarch64__)
//#ifndef GL_VERSION
//#error Please include the appropriate gl headers before including cuda_gl_interop.h
//#endif
//#else
 #include <GL/gl.h>
//#endif

然后点save保存,退出。

7. 开始编译安装opencv-3.4.5

  • 找到opencv-3.4.5所在文件夹(即前文解压后的文件夹),然后cd到build文件夹里面。
  • Cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D WITH_CUDA=ON -D CUDA_ARCH_BIN="6.2" -D CUDA_ARCH_PTX="" \
        -D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON \
        -D ENABLE_NEON=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF \
        -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \
        -D WITH_QT=ON -D WITH_OPENGL=ON ..
  • MAKE
sudo make
  • 安装
sudo make install
  • 配置opencv环境

  • sudo gedit /etc/ld.so.conf.d/opencv.conf
    在打开文件中加入/usr/local/lib,如下:
    在这里插入图片描述

  • 执行下面的命令,使得刚才配置的路径生效

  • sudo ldconfig

  • 然后打开bash.bashrc文件

  • sudo gedit /etc/bash.bashrc

  • 在打开文件的最后加入如下命令

  • PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
    在这里插入图片描述

  • 然后保存文件,使其生效

  • source /etc/bash.bashrc

*补充:

如果make或安装时显示失败可以尝试一下进入管理者模式,不用sudo指令直接make安装,代码如下:

make
make install

可能在进行到安装这一步时会出现如下报错:
在这里插入图片描述
报错:
*** No rule to make target ‘/文件路径/文件名’,needed by ‘/文件路径/文件名’. Stop

出现这种情况多半是因为/usr/lib/x86_64-linux-gnu名录下的libGL.so文件的动态库链接失效了,需要重新对其进行动态链接,让它对应上正确的路径文件,方法如下:

在文件夹进入/usr/lib/x86_64-linux-gnu该目录下,然后查找包含关键词libGL的文件,如果文件夹中本身已经有libGL.so文件的话,就cd进入到/usr/lib/x86_64-linux-gnu路径下执行以下指令,删除该文件

sudo rm libGL.so

再使用以下指令,将libGL.so.1与libGL.so进行关联

sudo ln -s /usr/lib/aarch64-linux-gnu/libGL.so.1  /usr/lib/aarch64-linux-gnu/libGL.so

8. 检查是否成功安装opencv

经历以上步骤后基本完成了opencv3.4.5的安装

可以先在jtop查看opencv的安装版本,正确安装后会显示:
在这里插入图片描述
之后连接一个摄像头,在控制台cd到/opencv-3.4.5/samples/cpp/example_cmake,执行:

cmake .
make

在这里插入图片描述

成功make后,执行

./opencv_example

如果摄像头能正常打开则安装成功,并可查看opencv当前版本号
在这里插入图片描述
在这里插入图片描述

总结:
上述步骤在经过测试后基本能在Jetson Xavier NX安装不同版本的opencv。已测试过的版本包括:Opencv3.3.0、Opencv3.4.3以及Opencv3.4.5,在我自己安装时借鉴了非常多作者的文章,才能一步步避开许多坑,感谢各位作者。

Jetson Xavier NX安装opencv3.x以及踩过的坑
ubuntu16.04安装OpenCV3.4.5的C++版本(亲测绝对可以用)
ubuntu16.04安装opencv教程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetson Xavier NX安装opencv3.4.5(小白教程) 的相关文章

随机推荐

  • 分享一下我参加开发者大会以来自己的总结(仅供参考)

    手机游戏设计 1选材类型符合移动平台特性 2剧情背景知名度高 3选材定义自己的用户 xff0c 用户觉得游戏的玩法 游戏设计法则 xff08 无需全部实现 xff0c 根据自己游戏类型找和适合法则结合 xff09 法则 1 xff1a 富有
  • 时钟周期、机器周期、指令周期的概念及三者之间的关系;定时器及计数器

    时钟周期 时钟周期也称为振荡周期 xff0c 定义为时钟脉冲的倒数 可以这样来理解 xff0c 时钟周期就是单片机外接晶振的倒数 xff0c 例如12M的晶振 xff0c 它的时间周期就是1 12 us xff0c 是计算机中最基本的 最小
  • 自旋锁-原理

    跟互斥锁一样 xff0c 一个执行单元要想访问被自旋锁保护的共享资源 xff0c 必须先得到锁 xff0c 在访问完共享资源后 xff0c 必须释放锁 如果在获取自旋锁时 xff0c 没有任何执行单元保持该锁 xff0c 那么将立即得到锁
  • openvslam------slam解读系列

    是什么 openvslam是日本先进工业科技研究 xff08 National Institute of Advanced Industrial Science and Technology xff09 所于2019年5月20日开源的视觉S
  • Hadoop编程学习1--WordCount

    span class hljs keyword package span org apache hadoop examples span class hljs keyword import span java io IOException
  • p2p传输实时视频流

    HYP2P是好游科技开发的p2p sdk xff0c 利用nat穿透的原理实现p2p打洞 xff0c 主要用于实时音视频的传输 使用时可以配置成tcp模式或udp模式 xff0c tcp模式会自动帮您解决丢包 乱序 重传问题 中转模式则是基
  • 笑谈Android图表------MPAndroidChart

    MPAndroidChart是一款基于Android的开源图表库 xff0c MPAndroidChart不仅可以在Android设备上绘制各种统计图表 xff0c 而且可以对图表进行拖动和缩放操作 xff0c 应用起来非常灵活 MPAnd
  • 详谈高大上的图片加载框架Glide -应用篇

    在Android设备上 xff0c 加载网络图片一直是一个头疼的问题 xff0c 因为Android设备种类繁多 xff08 当然最主要的是配置 xff09 xff0c 处理的稍不周到轻则应用卡顿 xff0c 严重者就会出现OOM的 xff
  • 微信小程序开发环境搭建

    微信小程序可谓是今天最火的一个名词了 xff0c 一经出现真是轰炸了整个开发人员 xff0c 当然很多App开发人员有了一个担心 xff0c 微信小程序的到来会不会给移动端App带来一个寒冬 xff0c 身为一个Android开发者我是不相
  • 实现APP定位功能

    源码传送门 若你不小心点击进入GitHub了捎带给个star 前言 最近更新项目中用的百度定位SDK时遇见了一个奇葩的问题 当升级SDK后百度定位一直返回505 通过百度定位官网查看该码表示AK非法或者不存在 很纠结 于是自己又写了一个de
  • Linux系统命令行创建新文件

    linux命令行创建文件 方法有许多 xff0c 下面简单介绍一下 方法1 使用cat命令 cat span class token operator gt span sample1 span class token punctuation
  • Java利器之UML类图详解

    前言 UML xff08 Unified Modeling Language xff09 中文统一建模语言 xff0c 是一种开放的方法 xff0c 用于说明 可视化 构建和编写一个正在开发的 面向对象的 软件密集系统的制品的开放方法 UM
  • 从零开始学习Linux部署Java web项目

    前言 最近越来越发现需要学习的东西太多了 xff0c 前几天公司服务器出现问题 xff0c 需要对服务器硬件进行维护 xff0c 当然服务器上的服务需要部署到另一个服务器上 这对于我来说是很陌生的 xff0c 虽然这件工作没有让我去做 xf
  • 致敬我奋起直追的2016

    前言 其实当用奋起直追这个词语形容我的2016时 xff0c 自己一度怀疑是不是配得上这个词语 虽然2016成长了不少 xff0c 但是依然没有达到我想要的效果 在学习过程中不断出现越学越倒退的感觉 还偶尔会出现一些恐惧感 不过庆幸的是 x
  • 微信小程序分页加载

    分页加载功能大家遇到的应该会经常遇到 xff0c 应用场景也很多 xff0c 例如微博 xff0c QQ xff0c 微信朋友圈以及新闻类应用 xff0c 都会有分页加载的功能 xff0c 这不仅节省了我们用户的流量 xff0c 还提升了用
  • ReactNative ViewPageAndroid组件详解

    源码传送门 在我们开发Android的时候 xff0c ViewPage这个控件的使用频率还是很高的 xff0c 最简单的就是制作引导页 xff0c 应用程序的主界面等 xff0c 在ReactNative开发中实现该功能的组件是ViewP
  • Android自定义数字键盘

    好久没有写Android的文章了 xff0c 有两三个月多了吧 xff0c 刚开始搞微信小程序 xff0c 后来又开搞ReactNative 现在又兴奋的开搞AI机器学习的东西 xff0c 感觉挺有意思的 xff0c 不过AI与其它的东西相
  • ConstraintLayout基础介绍

    自去年Google I O 大会发布ConstraintLayout至今 xff0c 已有一年多的时间 xff0c 但是并没有普及开来 xff0c 了解过ConstraintLayout布局的人知道 xff0c 它的性能的确提升了不少 在前
  • 嵌入式Linux实战开发之项目总体概述(基于IMX6ULL)

    文章目录 前言 xff08 一 xff09 开发环境 xff08 二 xff09 项目基本概述 xff08 三 xff09 程序框架 xff08 四 xff09 参考资料 前言 现在越来越多的智能设备融入到我们的生活 xff0c 然而 xf
  • Jetson Xavier NX安装opencv3.4.5(小白教程)

    作为小白 xff0c 近期开始上手嵌入式设备Jetson Xavier NX xff0c 系统为Ubuntu 18 04 6 xff0c 而因项目开发环境需要Opencv3 4 5版本 xff0c 预装系统内安装的是Opencv4 1 1