在nvidia jetson xavier、tx2上安装任意版本opencv

为什么要写这个

网上有太多的教程,无外乎就是手动编译或者借助写好的脚本自动编译。很多教程里,安装依赖项那部分操作要不是太繁琐、太乱,要不就是安装不全,导致编译出错。所以我想写一个简洁有效的安装手段,并且让大家了解每个部分是做什么用的。

预先条件

安装了jetpack4.2以上版本,通常已经自带opencv,但由于该opencv功能不全面,我们需要删除并安装行版本
删除命令:

 sudo apt-get purge libopencv*

通过脚本安装

两种选择
① 一键脚本操作:

 git clone https://github.com/jetsonhacks/buildOpenCVXavier.git
 cd buildOpenCVXavier
 git checkout v1.0
./buildOpenCV.sh

②修改脚本,安装任意版本opencv

 git clone https://github.com/jetsonhacks/buildOpenCVXavier.git
 cd buildOpenCVXavier

进入buildOpenCVXavier文件夹后,用任意文本编辑器打开buildOpenCV.sh脚本:
选择版本

OPENCV_VERSION=3.4.3

选择对应设备:(通过删除/保留#号注释,当然每个设备与ARCH_BIN一一对应)

# Jetson AGX Xavier
ARCH_BIN=7.2
# Jetson TX2
#ARCH_BIN=6.2
# Jetson TX1
# ARCH_BIN=5.3
INSTALL_DIR=/usr/local

ARCH_BIN实际上是NVIDIA公司旗下显卡的“GPU Compute Capability”的号码,其他显卡号可以从以下网站查

https://developer.nvidia.com/cuda-gpus

保存脚本,并运行

 git checkout v1.0
./buildOpenCV.sh

安装好后删除安装包

./removeOpenCVSources.sh

自行安装(以opencv3最新版本3.4.9为例)

这种方式非常繁琐,并且一不小心就可能少安装东西,导致重新安装。

实际上,我们要做的是下载opencv源代码,再使用CMAKE编译,最终产生opencv的库

首先安装依赖项,必不可缺!

sudo apt-get install build-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

2、下载opencv sourse code,进入文件夹

cd ~/opencv
mkdir build
cd build

3、为了便于管理和查看,我们通过新建脚本来编译opencv:
sudo gedit my_cmake.sh
打开my_cmake.sh后,贴入

cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DBUILD_PNG=OFF \
    -DBUILD_TIFF=OFF \
    -DBUILD_TBB=OFF \
    -DBUILD_JPEG=OFF \
    -DBUILD_JASPER=OFF \
    -DBUILD_ZLIB=OFF \
    -DBUILD_EXAMPLES=ON \
    -DBUILD_opencv_java=OFF \
    -DBUILD_opencv_python2=ON \
    -DBUILD_opencv_python3=ON \
    -DENABLE_PRECOMPILED_HEADERS=OFF \
    -DWITH_OPENCL=OFF \
    -DWITH_OPENMP=OFF \
    -DWITH_FFMPEG=ON \
    -DWITH_GSTREAMER=ON \
    -DWITH_GSTREAMER_0_10=OFF \
    -DWITH_CUDA=ON \
    -DWITH_GTK=ON \
    -DWITH_VTK=OFF \
    -DWITH_TBB=ON \
    -DWITH_1394=OFF \
    -DWITH_OPENEXR=OFF \
    -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \
    -DCUDA_ARCH_BIN=7.2 \    #tx2是6.2
    -DCUDA_ARCH_PTX="" \
    -DINSTALL_C_EXAMPLES=ON \
    -DINSTALL_TESTS=ON \
    -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \  #CONTRIB文件的位置

这些on off 如同开关,打开相应功能

运行脚本: sudo ./my_cmake.sh
4,编译

make -j8
sudo make install

5添加环境变量(目的是以后无论在什么路径,都能使用opencv库)

cd ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/

你可能感兴趣的:(在nvidia jetson xavier、tx2上安装任意版本opencv)