构建 OpenCV 4.5.1 (适用于jetson nx、jetson tx2、jetson Xavier nx等 )
说明:
构建的依赖版本: python3.7/3.8, CUDA and cuDNN.
CUDA and cuDNN获取路径
https://developer.nvidia.com/cuda-downloads https://developer.nvidia.com/rdp/cudnn-download
1、需要用到的软件包
sudo apt install python3-dev python3-pip python3-testresources
安装相关依赖(注意:由于软件包较多,如果依赖全则可以跳过此步骤,或在构建opencv时缺哪个补哪个)
sudo apt install build-essential cmake pkg-config unzip yasm git checkinstall
sudo apt install libjpeg-dev libpng-dev libtiff-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libavresample-dev
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev
sudo apt install libfaac-dev libmp3lame-dev libvorbis-dev
sudo apt install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libtbb-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
安装 numpy
pip3 install numpy
2、开始构建opencv4.5.1
(1)说明:
opencv.zip:opencv的源码包,可以到github中获取
opencv_contrib.zip: opencv的扩展源码包,如果需要opencv的cuda加速,必须要配置这个包一起编译,否则编译出来的opencv不带cuda加速功能。
(2)步骤
获取源码包
mkdir opencvbuild && cd opencvbuild
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.1.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.1.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.5.1 opencv
mv opencv_contrib-4.5.1 opencv_contrib
新建编译目录
cd opencv
mkdir build && cd build
配置编译参数
注意:CUDA_ARCH_BIN
参数需要修改,更具当前GPU cuda版本,我的是7.2
配置参数如下:
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=/usr/bin/gcc-7 \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDA_ARCH_BIN=7.2 \
-D BUILD_opencv_cudacodec=OFF \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D WITH_FFMPEG=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_PC_FILE_NAME=opencv4.pc -D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D PYTHON_DEFAULT_EXECUTABLE=$(which python3) \
-D BUILD_EXAMPLES=ON \
..
开始编译
make -j4
安装
sudo make install
3、打包opencv4.5.1库
由于opencv可能需要做移植,打包opencv到其他的开发板上,可直接打包并把文件放到以下路径即可:(注意:在build编译目录中找到相应的bin文件、lib库文件、include头文件,打包即可)
/usr/local/lib/
/usr/local/include/
/usr/local/bin/