在AGX上安装opencv4的cuda版本,带有GPU加速的opencv库
🧭 一、确认系统与环境
在 Jetson 上:
cat /etc/nv_tegra_release nvcc -V
确认输出中有 CUDA(说明 JetPack 已安装),
例如:
CUDA compilation tools, release 11.4, V11.4.315
🧭 二、确认 CUDA 是否安装在系统中
Jetson 上 CUDA 默认路径是:
/usr/local/cuda
请运行:
ls /usr/local/
你应该会看到类似:
bin cuda cuda-11.4 games include lib share
如果有 cuda
或 cuda-11.4
,说明 CUDA 已存在,只是没加到环境变量。
⚙️ 三、配置 CUDA 环境变量
编辑 ~/.bashrc
:
gedit ~/.bashrc
在文件末尾添加:
# CUDA Environment
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
然后执行:
source ~/.bashrc
✅ 四、验证 CUDA 是否真的可用
nvcc -V
如果输出正常,说明 CUDA 已配置完成。
⚙️ 五、安装依赖
sudo apt update sudo apt install -y build-essential cmake git pkg-config \ libjpeg-dev libpng-dev libtiff-dev \ libavcodec-dev libavformat-dev libswscale-dev \ libv4l-dev libxvidcore-dev libx264-dev \ libgtk-3-dev libcanberra-gtk* \ libopenblas-dev libatlas-base-dev gfortran python3-dev python3-numpy \ python3-matplotlib
📦 六、获取 OpenCV 源码(opencv 4.X)
cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv
网盘链接:
通过网盘分享的文件:OpenCV4.X
链接: https://pan.baidu.com/s/1IIMo3M6QHdm6eDNHzP2LVg 提取码: nqgs
--来自百度网盘超级会员v5的分享
🧩 七、创建构建目录
cd ~/opencv mkdir build cd build
🛠️ 八、配置 CMake(CUDA 选项)
下面这一步非常关键 ⚠️
请直接复制这一整段:
cmake \-D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D OPENCV_EXTRA_MODULES_PATH=/home/agx/Desktop/opencv_contrib/modules \-D WITH_CUDA=ON \-D WITH_CUDNN=ON \-D ENABLE_FAST_MATH=1 \-D CUDA_FAST_MATH=1 \-D WITH_CUBLAS=1 \-D WITH_TBB=ON \-D WITH_V4L=ON \-D WITH_QT=OFF \-D WITH_OPENGL=ON \-D BUILD_EXAMPLES=OFF \-D BUILD_opencv_python3=ON \-D BUILD_opencv_java=OFF \-D BUILD_opencv_viz=OFF \-D OPENCV_DNN_CUDA=ON \-D CUDA_ARCH_BIN="8.7" \-D CUDA_ARCH_PTX="" \..
💡 说明:
CUDA_ARCH_BIN=7.2
→ Jetson AGX Xavier 架构。Jetson AG Orin架构,请改为
8.7
。
⚡ 十、编译(建议使用所有 CPU 核心)
Jetson AGX Xavier 有 8 核,可以这样:
make -j$(nproc)
编译大约需要 1–2 小时(取决于散热与功耗模式)。
🧱 十一、安装
sudo make install sudo ldconfig
🧱 十二、验证安装
agx@agx:~/Desktop$ python3 -c "import cv2; print('OpenCV version:', cv2.__version__); print('CUDA devices:', cv2.cuda.getCudaEnabledDeviceCount()); print('CUDA available ✅' if cv2.cuda.getCudaEnabledDeviceCount()>0 else 'CUDA not available ❌')"
输出:
OpenCV version: 4.13.0-dev
CUDA devices: 1
CUDA available ✅