说明:在之前的教程(https://blog.csdn.net/suanfaxiazai/article/details/128656784?spm=1001.2014.3001.5501)已经教学如何编译cuda版本的opencv(3.4.7)(c++测试硬解码通过,但不支持python),现在编译cuda版本opencv4.5.0(在ubuntu20.04下,支持c++和python硬解码)。
一、下载安装NVIDIA VIDEO CODEC SDK(一定注意opencv4.5.0要用10.0.26版本的video sdk,否则mpeg-4 编码的视频解码时会报版本错误)
(请参照https://blog.csdn.net/suanfaxiazai/article/details/128656784?spm=1001.2014.3001.5501的第一步骤)
二、下载编译opencv4.5.0
终端执行
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mkdir -p build && cd build
cmake -DOPENCV_GENERATE_PKGCONFIG=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1/ -DWITH_PYTHON=ON -DBUILD_TIFF=ON -DWITH_CUDA=ON -DWITH_CUDNN=ON -DOPENCV_DNN_CUDA=ON -DWITH_CUBLAS=ON -DWITH_TBB=ON -DOPENCV_DNN_CUDA=ON -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_OPENCV_PYTHON2=OFF -DCUDA_ARCH_BIN=8.6 -DWITH_MFX=ON -DWITH_OPENGL=ON -DOPENCV_CUDA_ARCH_PTX="" -DINSTALL_PYTHON_EXAMPLES=ON -DBUILD_JAVA=OFF -DWITH_NVCUVID=ON -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.0/modules ../opencv-4.5.0
make -j4
make install
上面的命令里面相较与之前:
opencv3.4.7把版本改为了opencv4.5.0;
增加了-DWITH_NVCUVID=ON(这个是一定要增加的,否则执行硬解码时出现"throw_no_cuda"错误)
三、测试
python测试结果:
![](https://img-blog.csdnimg.cn/img_convert/ac8cfcccc64fb7b7dfc50bac660ddb17.png)