1、尝试过其他组合会报错,最终选择最新的opencv版本;
2、基本信息对照表:


3、详细步骤
3.1 下载opencv和opencv_contrib,地址如下:
opencv:Releases - OpenCV
opencv_contrib:Releases · opencv/opencv_contrib
3.2 需要cuda最低12.8,cudnn8.9.5.1地址如下:
CUDA Toolkit Archive | NVIDIA Developer
cuDNN Archive | NVIDIA Developer
3.3 需要Video_Codec_SDK_12.2.72,下载地址为:
Video Codec SDK Archive | NVIDIA Developer
3.4 修改opencv中的下载地址
https://raw.githubusercontent.com
替换为https://raw.staticdn.net,大概5处地方:



下面两个文件中的都需要替换

3.5编译过程:
# 解压文件
unzip opencv-4.12.0.zip
unzip opencv_contrib-4.12.0.zip
unzip Video_Codec_SDK_12.2.72.zip
# 把contrib移动到opencv目录
mv opencv_contrib-4.12.0 opencv-4.12.0
# 移动Video_Codec_SDK_12.2.72中的头文件到cuda12.8的include文件夹
cp ../../Video_Codec_SDK_12.2.72/Interface/*.h /usr/local/cuda-12.8/include/
# 编译命令,docker中注意修改路径host
cmake ..
-D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D WITH_CUDA=ON
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.8
-D ENABLE_FAST_MATH=1
-D CUDA_FAST_MATH=1
-D WITH_CUBLAS=1
-D WITH_LIBV4L=ON
-D BUILD_opencv_cudev=ON
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.12.0/modules
-D BUILD_opencv_python3=ON
-D PYTHON3_EXECUTABLE=$(which python3)
-D CMAKE_BUILD_TYPE=RELEASE
-D BUILD_TESTS=OFF
-D BUILD_PERF_TESTS=OFF
-D CMAKE_CUDA_ARCHITECTURES="86;89;90;120"
-D CUDA_ARCH_BIN="86;89;90;120"
-D CUDA_ARCH_PTX="120"
-D WITH_NVCUVID=ON
-D WITH_NVCUVENC=ON
-D CUDA_nvcuvid_LIBRARY=/home/kylin/JA/algo_cong/Video_Codec_SDK_12.2.72/Lib/linux/stubs/x86_64/libnvcuvid.so
-D CUDA_nvidia-encode_LIBRARY=/home/kylin/JA/algo_cong/Video_Codec_SDK_12.2.72/Lib/linux/stubs/x86_64/libnvidia-encode.so
make -j16
# 默认安装到/usr/local
make install


被折叠的 条评论
为什么被折叠?



