心酸史!!!记录一下遇到的错误:
cmake中遇到的错误:
先附上cmake代码:
cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=/home/lijing/opencv-3.4.13/opencv_contrib-3.4.13/modules/
-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so -D CUDA_ARCH_BIN=7.5
-D CUDA_ARCH_PTX=""
-D WITH_CUDA=ON -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON
-D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON
-D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1
-D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_NVCUVID=ON
-D BUILD_opencv_cudacodec=OFF
-D WITH_FFMPEG=OFF
-D OPENCV_ENABLE_NONFREE:BOOL=ON .. //如果你想用 SURF,SIFT算法的话需要把 OPENCV_ENABLE_NONFREE 勾上
1 SURF报错的问题
解决方法:
第一步:如果使用SURF和SIFT
-D OPENCV_ENABLE_NONFREE:BOOL=ON .
第二步:
将opencv3.4.13根目录下的CMakeLists.txt第207行作以下修改:
OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF)
改为:
OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" ON)
第三步
进入到
cd opencv-3.4.13/samples/gpu/surf_keypoint_matcher.cpp
添加头文件:
#include "/home/lijing/opencv-3.4.13/opencv_contrib-3.4.13/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
问题解决
用到如下帖子:
surf问题解决办法1
surf问题解决办法2
2 没有那个文件或目录
报错1:
进入到对应文件:修改头文件:
# include "/home/lijing/opencv-3.4.13/opencv_contrib-3.4.13/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
报错2:
进入到对应文件:修改头文件:
# include "/home/lijing/opencv-3.4.13/opencv_contrib-3.4.13/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp"
报错3:
进入到对应文件:修改头文件为:
#include "/home/lijing/opencv-3.4.13/opencv_contrib-3.4.13/modules/xfeatures2d/include/opencv2/xfeatures2d/xfeatures2d.hpp"
‘CODEC_ID_H264’ was not declared in this scope
cmake时:将
ffmeg设置为off,即:
-D WITH_FFMPEG=OFF