AGX编译安装opencv和opencv-contrib模块(c++和python,支持GPU)

在AGX编译安装opencv-python及opencv-contrib-python有两个途径

一、pip安装(以4.4.0.46版本为例)

sudo pip3 install opencv-python==4.4.0.46
sudo pip3 install opencv-contrib-python==4.4.0.46

pip安装只适合python接口调用,若用c++接口,则需要源码编译安装。

二、源码编译安装

源码编译安装在终端输入cmake预编译指令,编译出来即可满足c++,python接口调用,也可支持GPU。
云盘链接: https://pan.baidu.com/s/1U4LqcfDoH0RS33MPi4fM6w 密码: rqn2
opencv的扩展模块及编译需要下载的各种*.i文件都在opencv-4.4.0.zip里了

  • mkdir build;cd build
  • cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules -D WITH_CUDA=1 -D WITH_CUDNN=1 -D OPENCV_DNN_CUDA=1 -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D ENABLE_FAST_MATH=1 -D WITH_CUBLAS=1 -D HAVE_opencv_python3=1 -DBUILD_opencv_python3=ON -D OPENCV_GENERATE_PKGCONFIG=1 -D CUDA_ARCH_BIN=7.2 -D PYTHON_DEFAULT_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") -D PYTHON3_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") -D PYTHON3_NUMPY_INCLUDE_DIRS=$(python3 -c "import numpy; print (numpy.get_include())") -D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..
    注意:
    0、CMAKE_INSTALL_PREFIX:待安装位置
    1、OPENCV_EXTRA_MODULES_PATH :拓展模块代码位置;
    2、CUDA_ARCH_BIN :设备的cuda参数 AGX=7.2; TX2=6.2;
    参考https://blog.csdn.net/CSS360/article/details/109696878
    3、PYTHON_DEFAULT_EXECUTABLE: 默认的解释器
    PYTHON3_EXECUTABLE: python3解释器
    PYTHON3_NUMPY_INCLUDE_DIRS: python3的numpy头文件
    PYTHON3_PACKAGES_PATH:python3版opencv动态库安装地址
    有些博客还加了PYTHON_LIBRAR,这里没加也可以编译成功;
  • make -j8
  • sudo make install

安装完成之后,打印编译信息,可以看到opencv编译版本是python3,python3的解释器、动态库等相关的信息也可看到。

import cv2
print(cv2.getBuildInformation())

在这里插入图片描述

三、示例:opencv-LSD算法python接口调用

按:LSD算法在opencv4中被移除到opencv-contrib模块

import cv2 as cv
import numpy as np
Img = cv.imread('lsd_img.png', 1)
gray_Img = cv.cvtColor(Img, cv.COLOR_BGR2GRAY)
lsd = cv.ximgproc.createFastLineDetector()
lsd_lines = lsd.detect(gray_Img)
result_img = lsd.drawSegments(gray_Img, lsd_lines)
for lsd_line in lsd_lines:
    x0 = int(round(lsd_line[0][0]))
    y0 = int(round(lsd_line[0][1]))
    x1 = int(round(lsd_line[0][2]))
    y1 = int(round(lsd_line[0][3]))
    cv.line(Img, (x0, y0), (x1, y1), (0, 0, 255), 1)
cv.imshow("draw_Img", Img)
cv.waitKey(0)

出图效果
在这里插入图片描述

### NVIDIA AGX Orin 上安装 OpenCV 的指南 #### 清理旧版 OpenCV 并准备依赖项 在开始之前,建议清理可能存在的旧版本 OpenCV 安装包并确保必要的构建工具已就绪。这一步骤对于避免潜在冲突至关重要[^1]。 ```bash sudo apt-get purge libopencv* sudo apt-get autoremove sudo apt update && sudo apt upgrade -y ``` 随后,安装编译所需的开发环境依赖库: ```bash sudo apt install build-essential cmake git pkg-config \ libjpeg-dev libtiff5-dev libjasper-dev libpng-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libgtk-3-dev \ libatlas-base-dev gfortran python3-pip python3-numpy \ python3-scipy python3-matplotlib -y ``` --- #### 使用 JetPack SDK 进行软件堆栈部署 JetPack 是专为 Jetson 系列设计的综合解决方案,其中包含了 OpenCV 及其相关组件(如 TensorRT cuDNN)。通过 JetPack 部署可以显著简化配置过程[^3]。 下载最新版本的 JetPack SDK Manager DEB 文件,并按照以下命令完成安装: ```bash wget https://developer.nvidia.com/jetpack-sdk-manager-deb-file sudo dpkg -i jetpack*.deb ``` 启动 JetPack GUI 工具后,选择适合 AGX Orin 的镜像文件以及目标设备进行刷机操作。此过程中会自动集成预编译好的 OpenCV 库。 如果需要手动验证是否已经包含 OpenCV,则可以通过 PythonC++ 测试脚本确认: ```python import cv2 print(cv2.__version__) ``` --- #### 手动编译 OpenCV (可选) 当默认提供的 OpenCV 版本无法满足需求时,可以选择自行编译特定版本。以下是具体流程: 1. **克隆源码仓库** ```bash git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.x # 替换为你所需的具体分支号 ``` 2. **创建构建目录** ```bash mkdir -p ~/opencv/build && cd ~/opencv/build ``` 3. **执行 CMake 配置** 调整参数以适配硬件特性,例如启用 GPU 加速功能: ```bash cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_CUDA=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules .. ``` 4. **编译安装** 编译时间取决于计算性能,通常较长: ```bash make -j$(nproc) sudo make install sudo ldconfig ``` 完成后再次测试导入模块的功能性。 --- #### ROS 中的应用实例 假设您计划利用 ROS 来调用基于 OpenCV 实现的小车图像处理逻辑,那么可通过如下方式加载节点服务[^4]: ```bash roslaunch scout_bringup scout_minimal.launch rosrun show_img image_listener ``` 上述两条指令分别用于初始化机器人核心框架服务端口监听器。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值