OpenCV编译

OpenCV编译

如果使用nvcuvid

复制文件

Video_Codec_SDK_11.1.5/Interface路径下的
cuviddec.h、nvcuvid.h、nvEncodeAPI.h到/usr/include
sudo cp cuviddec.h nvcuvid.h nvEncodeAPI.h /usr/include

改opencv-4.5.5/cmake/OpenCVDetectCUDA.cmake文件中

PATHS "${CUDA_TOOLKIT_TARGET_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}"

改为

PATHS "${CUDA_TOOLKIT_TARGET_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}" "/usr/include"

准备下载的文件:

mkdir /home/heqingchun/opencv_cmake_download_files
cd opencv_cmake_download_files
wget https://github.com/opencv/ade/archive/refs/tags/v0.1.1f.zip
opencv-4.5.5/modules/gapi/cmake/DownloadADE.cmake
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i && \
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i && \
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i && \
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i && \
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i
opencv-4.5.5/opencv_contrib-4.5.5/modules/xfeatures2d/cmake/download_boostdesc.cmake
wget https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/detect.caffemodel && \
wget https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/detect.prototxt
opencv-4.5.5/opencv_contrib-4.5.5/modules/wechat_qrcode/CMakeLists.txt
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
opencv-4.5.5/opencv_contrib-4.5.5/modules/face/CMakeLists.txt
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_intel64_20191018_general.zip
opencv-4.5.5/3rdparty/ippicv/ippicv.cmake
wget https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/edb50da3cf849840d680249aa6dbef248ebce2ca.zip
opencv-4.5.5/opencv_contrib-4.5.5/modules/cudaoptflow/CMakeLists.txt
wget https://github.com/01org/tbb/archive/v2020.2.tar.gz
opencv-4.5.5/3rdparty/tbb/CMakeLists.txt
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i && \
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i && \
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i
opencv-4.5.5/opencv_contrib-4.5.5/modules/xfeatures2d/cmake/download_vgg.cmake

依赖

1.gtk

sudo apt install libgtk2.0-dev \
libcanberra-gtk-module

2.opengl

sudo apt install libgl1-mesa-dev \
libglew-dev \
libsdl2-dev \
libsdl2-image-dev \
libglm-dev \
libfreetype6-dev \
libglfw3-dev \
libglfw3 \
libglu1-mesa-dev \
freeglut3-dev \
libgtkglext1 \
libgtkglext1-dev

3.gstreamer

sudo apt install libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-bad1.0-dev \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
gstreamer1.0-doc \
gstreamer1.0-tools \
gstreamer1.0-x \
gstreamer1.0-alsa \
gstreamer1.0-gl \
gstreamer1.0-gtk3 \
gstreamer1.0-qt5 \
gstreamer1.0-pulseaudio

cmake

cmake -D CMAKE_INSTALL_PREFIX=/usr/local \
-D CMAKE_BUILD_TYPE=Release \
-D BUILD_opencv_world=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON \
-D ENABLE_FAST_MATH=ON \
-D BUILD_ITT=OFF \
-D WITH_ITT=OFF \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.5/modules \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GTK_2_X=ON \
-D WITH_OPENGL=ON \
-D WITH_VTK=ON \
-D WITH_OPENCL=ON \
-D WITH_V4L=ON \
-D BUILD_TBB=ON  \
-D WITH_TBB=ON \
-D WITH_OPENMP=ON \
-D OPENCV_DNN_CUDA=ON \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=7.5 \
-D CUDA_ARCH_PTX=7.5 \
-D CUDA_FAST_MATH=1 \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-D WITH_CUDNN=ON \
-D WITH_NVCUVID=ON \
-D WITH_CUBLAS=ON \
..

安装

make -j12
sudo make install

配置环境变量:

打开:

sudo gedit /etc/ld.so.conf.d/opencv.conf

写入:

/usr/local/lib

执行:

sudo ldconfig

打开:

sudo gedit /etc/profile

写入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

执行:

source /etc/profile

打开:

/etc/ld.so.conf

写入:

/usr/local/lib

执行:

sudo ldconfig

验证:

pkg-config --modversion opencv4

你可能感兴趣的:(ubuntu,opencv,opencv,计算机视觉)