Python 在Ubuntu 18.04上使用CUDA和FFMpeg编译OpenCV时出错

Python 在Ubuntu 18.04上使用CUDA和FFMpeg编译OpenCV时出错,python,opencv,ffmpeg,ubuntu-18.04,Python,Opencv,Ffmpeg,Ubuntu 18.04,我需要安装用CUDA和FFMpeg编译的OpenCV,用于光流计算 我随后在Ubuntu18.04上进行了安装,但当我试图执行以下命令时,出现了如下屏幕截图所示的错误: cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=

我需要安装用CUDA和FFMpeg编译的OpenCV,用于光流计算

我随后在Ubuntu18.04上进行了安装,但当我试图执行以下命令时,出现了如下屏幕截图所示的错误:

  cmake -D CMAKE_BUILD_TYPE=RELEASE \
            -D CMAKE_INSTALL_PREFIX=/usr/local \
            -D INSTALL_C_EXAMPLES=ON \
            -D INSTALL_PYTHON_EXAMPLES=ON \
            -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
            -D BUILD_EXAMPLES=ON \
            -D BUILD_opencv_python2=OFF \
            -D WITH_FFMPEG=1 \
            -D WITH_CUDA=ON \
            -D CUDA_GENERATION=Pascal \
            -D ENABLE_FAST_MATH=1 \
            -D CUDA_FAST_MATH=1 \
            -D WITH_CUBLAS=1 \
            -D PYTHON_DEFAULT_EXECUTABLE=/opt/anaconda/bin/python \
            -D PYTHON3_INCLUDE_DIR=/opt/anaconda/include/python3.5m \
            -D PYTHON3_LIBRARY=/opt/anaconda/lib/libpython3.5m.so \
            -D PYTHON3_PACKAGES_PATH=/opt/anaconda/lib/python3.5 \
            -D WITH_LAPACK=OFF \
            -D PYTHON3_NUMPY_INCLUDE_DIRS=/opt/anaconda/lib/python3.5/site-packages/numpy/core/include ..

我已经安装了CUDA 10.0版

如果你能指导我修复这个错误,或者建议我在Ubuntu 18.04上安装使用CUDA和FFMpeg编译的OpenCV的不同过程,这将是一个很大的帮助


谢谢

只是把这些信息作为答案

您所描述的内容似乎与opencv中的问题相同。其中未找到CUDA_CUDA_库。可以通过以下方式手动设置:

-DCUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so
或者,您也可以使用:

-DCMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs
这将提示在何处查找此库

对于您评论中的另一个问题,似乎找不到某个python文件。很可能与此有关:

        -D PYTHON_DEFAULT_EXECUTABLE=/opt/anaconda/bin/python \
        -D PYTHON3_INCLUDE_DIR=/opt/anaconda/include/python3.5m \
        -D PYTHON3_LIBRARY=/opt/anaconda/lib/libpython3.5m.so \
        -D PYTHON3_PACKAGES_PATH=/opt/anaconda/lib/python3.5 \

您应该检查是否有这些文件夹/文件。如果版本是正确的(3.5)或是更新的(3.6或3.7)。

看起来与相关,解决方案似乎是在命令行中添加另一个参数:
-D CUDA_CUDA_LIBRARY=/usr/local/CUDA/lib64/stubs/libcuda。非常感谢,这很有效!但是在执行
make
的下一个编译过程中,我遇到了另一个错误。我已经上传了截图。是的,你是对的。该错误是由于anaconda和python版本的规范不正确造成的。但是在
make
的过程中,我又犯了一个错误。我已经上传了截图,你能帮我一下吗?@Karthik上面写着
/usr/localcuda/lib64/stubs/libcuda,这看起来很奇怪。所以在你的错误中是
,而不是
/usr/local/cuda/lib64/stubs/libcuda。那么
复制路径的错误呢?另外,请确保路径正确,它可能在其他地方(使用
locate libcuda.so
查找它所在的位置)是的,命令中有输入错误。但是又被另一个错误卡住了错误的截图被上传了。非常感谢。@Karthik您缺少包含该文件的python开发包。我认为这是
安装python dev的最佳时机,但我现在不记得了:)