我和jetson-Nano的故事(10)——安装OpenCV3.2.0

2024-05-15 07:52

本文主要是介绍我和jetson-Nano的故事(10)——安装OpenCV3.2.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 仓库地址

  • opencv
    https://opencv.org/releases/page/6/
  • opencv_contrib
    https://github.com/opencv/opencv_contrib/tree/3.2.0

2. cmake-gui安装

安装指令

sudo apt-get install cmake-qt-gui

如果安装过程中入到下面的问题
在这里插入图片描述
可以按照以下方法解决

sudo apt --fix-broken install
sudo apt clean  
sudo apt update

一旦你解决了依赖关系问题,就可以尝试重新安装 cmake-qt-gui

sudo apt-get install cmake-qt-gui

3.编译安装

将压缩包解压并进入文件夹,把opencv_contrib-3.2.0放到opencv-3.2.0文件夹中,创建build文件夹

cd opencv-3.2.0
mkdir build

卸载opencv4.1.1

sudo apt-get remove libopencv*

3.1 编译报错

3.1.1 替换下载地址

由于网络环境原因,cmake过程中部分文件会因无法链接到下载地址导致cmake失败。

我们先行替换部分文件下载地址。

3.1.1.1 <boostdesc_bgm.i> 相关文件下载失败

打开终端,输入以下内容打开对应cmake文件:

sudo gedit ~/OpenCV/opencv_contrib-3.2.0/modules/xfeatures2d/cmake/download_boostdesc.cmake

将其中的raw.githubusercontent.com修改为raw.staticdn.net,保存并关闭gedit编辑器。

3.1.1.2 <vgg_generated_xxx.i> 相关文件下载失败

打开终端,输入以下内容,打开对应cmake文件:

sudo vim ~/OpenCV/opencv_contrib-3.2.0/modules/xfeatures2d/cmake/download_vgg.cmake

将其中的raw.githubusercontent.com修改为raw.staticdn.net,保存并关闭gedit编辑器。

3.1.2 OpenCV编译出现 CMake Error: CUDA_nppi_LIBRARY (ADVANCED)

在这里插入图片描述
原因解析:

cuda10不再支持2.0架构

解决方法:

第一步:在 opencv-3.2.0/cmake 文件夹下找到 FindCUDA.cmake 文件,对其进行修改

cd /home/zqzy/software/opencv-3.2.0/cmake
sudo vim FindCUDA.cmake

1)找到行

find_cuda_helper_libs(nppi)

改为

  find_cuda_helper_libs(nppial)find_cuda_helper_libs(nppicc)find_cuda_helper_libs(nppicom)find_cuda_helper_libs(nppidei)find_cuda_helper_libs(nppif)find_cuda_helper_libs(nppig)find_cuda_helper_libs(nppim)find_cuda_helper_libs(nppist)find_cuda_helper_libs(nppisu)find_cuda_helper_libs(nppitc)

2)找到行

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")

改为

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")

3)找到行

unset(CUDA_nppi_LIBRARY CACHE)

改为

unset(CUDA_nppial_LIBRARY CACHE)
unset(CUDA_nppicc_LIBRARY CACHE)
unset(CUDA_nppicom_LIBRARY CACHE)
unset(CUDA_nppidei_LIBRARY CACHE)
unset(CUDA_nppif_LIBRARY CACHE)
unset(CUDA_nppig_LIBRARY CACHE)
unset(CUDA_nppim_LIBRARY CACHE)
unset(CUDA_nppist_LIBRARY CACHE)
unset(CUDA_nppisu_LIBRARY CACHE)
unset(CUDA_nppitc_LIBRARY CACHE)

第二步: 在 opencv-3.2.0/cmake 文件夹下找到文件 OpenCVDetectCUDA.cmake,对其进行修改

cd /home/agilex/opencv3/opencv-3.2.0/cmakesudo gedit OpenCVDetectCUDA.cmake

修改以下几行

 ...set(__cuda_arch_ptx "")if(CUDA_GENERATION STREQUAL "Fermi")set(__cuda_arch_bin "2.0")elseif(CUDA_GENERATION STREQUAL "Kepler")set(__cuda_arch_bin "3.0 3.5 3.7")...

改为

  ...set(__cuda_arch_ptx "")if(CUDA_GENERATION STREQUAL "Kepler")set(__cuda_arch_bin "3.0 3.5 3.7")elseif(CUDA_GENERATION STREQUAL "Maxwell")set(__cuda_arch_bin "5.0 5.2")...

第三步: Cuda9或者Cuda10及以后的版本 中有一个单独的halffloat(cuda_fp16.h)头文件,也应该被包括在opencv的目录里

将头文件cuda_fp16.h添加至 opencv/modules/cudev/include/opencv2/cudev/common.hpp

cd /home/agilex/opencv3/opencv-3.2.0/modules/cudev/include/opencv2/cudevsudo gedit common.hpp

即在common.hpp中添加

#include <cuda_fp16.h>

重新生成即可

3.1.3 查看 CUDA 版本:nvcc -V 报错:bash: nvcc: 未找到命令

正常情况下,在安装完jetpack 系统之后,jetson nano会自动安装好cuda,
但是却提示报错
原因就是没有配置环境变量

解决办法
此时切换到 ~ 目录下: cd ~ ;

然后打开 .bashrc 文件:

cd ~ 
sudo  vim .bashrc 

接着按 i 键,进入编辑状态;

再接着在文件的末尾添加下面三行代码:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_ROOT=/usr/local/cuda

紧接着,按 Esc 键,然后输入冒号 ,再按下 wq! (表示强制写入并退出)!

最后一步,也是容易忘记的一步,一定要 source 一下这个文件:

source .bashrc

3.2 配置OpenCV

打开终端,输入:

#来到build文件夹
cd ~/opencv3/opencv-3.2.0/build
#执行cmake
cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="7.2" -D ENABLE_PRECOMPILED_HEADERS=OFF  -D CUDA_ARCH_PTX="" -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv3/opencv_contrib-3.2.0/modules ..

不报错的话会输出以下信息
在这里插入图片描述
编译安装OpenCV

#来到build文件夹
sudo make -j4
sudo make install

4.OpenCV环境配置

创建opencv.conf文件,打开终端,输入:

sudo gedit /etc/ld.so.conf.d/opencv.conf

在文件中添加以下内容后保存并关闭gedit编辑器:

/usr/local/lib

使opencv配置文件生效

打开终端,输入:

sudo ldconfig

配置bash环境变量
打开.bashrc文件,在终端输入:

sudo gedit ~/.bashrc

在文件的最末尾加入:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

保存并关闭gedit编辑器。

在终端输入:

source ~/.bashrc

验证opencv是否安装成功:
打开终端,输入:

pkg-config --modversion opencv

若安装成功,终端应输出:

3.2.0

在这里插入图片描述

5.参考资料

  1. Jetson Nano 安装 OpenCV 3.2.0 详细步骤
  2. OpenCV编译出现 CMake Error: CUDA_nppi_LIBRARY (ADVANCED)

这篇关于我和jetson-Nano的故事(10)——安装OpenCV3.2.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完