#!/bin/bash # Shell script 4 build OpenCV on Jetson # # A modified version of the following script https://github.com/AastaNV/JEP/blob/master/script/install_opencv4.6.0_Jetson.sh # # Alexander Popov # Update: 09.02.2024 # Variables OPENCV_VERSION="4.8.0" BUILD_FOLDER="opencv-${OPENCV_VERSION}-build" # OPENCV_INSTALL_PREFIX="/usr/local" OPENCV_INSTALL_PREFIX="/opt/opencv-${OPENCV_VERSION}" # Step 1: Download OpenCV echo "=====================================" echo "Step 1: Download OpenCV ${OPENCV_VERSION}..." echo "=====================================" mkdir -p ${BUILD_FOLDER}; cd ${BUILD_FOLDER} wget -c -q --show-progress https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip -O opencv-${OPENCV_VERSION}.zip wget -c -q --show-progress https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip -O opencv_contrib-${OPENCV_VERSION}.zip # Step 2: Unpack OpenCV echo "Step 2: Unpack OpenCV ${OPENCV_VERSION}..." unzip opencv-${OPENCV_VERSION}.zip unzip opencv_contrib-${OPENCV_VERSION}.zip cd opencv-${OPENCV_VERSION}/ # Step 3: Prepare build echo "=====================================" echo "Step 3: Prepare build..." echo "=====================================" mkdir -p build; cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_CXX_FLAGS="-Ofast" \ -D CMAKE_INSTALL_PREFIX=${OPENCV_INSTALL_PREFIX} \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${OPENCV_VERSION}/modules \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D WITH_OPENGL=ON -D WITH_QT=OFF -D WITH_FFMPEG=ON -D WITH_FREETYPE=ON \ -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=OFF -D INSTALL_PYTHON_EXAMPLES=OFF \ -D BUILD_opencv_cudacodec=ON -D BUILD_opencv_cudacodec=ON -D BUILD_opencv_apps=OFF \ -D INSTALL_C_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_DOCS=OFF \ -D WITH_CUDA=ON -D CUDA_ARCH_BIN="7.2,8.7" -D ARCH=sm_87 -D gencode=arch=compute_87,code=sm_87 -D CUDA_ARCH_PTX="" \ -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON \ -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON -D WITH_CUBLAS=ON -D WITH_CUFFT=ON \ -D WITH_TBB=ON -D OPENCV_ENABLE_NONFREE=ON \ -D CUDNN_INCLUDE_DIR=/usr/include \ -D CUDNN_LIBRARY=/usr/lib/aarch64-linux-gnu/libcudnn.so \ .. # -D WITH_OPENMP=ON \ # -D WITH_NVCUVID=ON \ # -D WITH_CSTRIPES=ON \ # -D WITH_OPENCL=ON \ # -D OPENCV_PC_FILE_NAME=opencv.pc \ # Step 4: Build OpenCV echo "=====================================" echo "Step 4: Build OpenCV..." echo "=====================================" make -j$(nproc) # Step 5: Install OpenCV echo "=====================================" echo "Step 5: Install OpenCV ${OPENCV_VERSION}..." echo "=====================================" sudo make install # Step 6: Finally echo "=====================================" echo " ####### ## ##" echo "## ## ## ##" echo "## ## ## ##" echo "## ## #####" echo "## ## ## ##" echo "## ## ## ##" echo " ####### ## ##" echo echo "Install OpenCV ${OPENCV_VERSION} complete" echo "====================================="