2020系统综合实践7 OpenCV 3.3.0编译错误汇总
缺少hpp类错误
从报错信息可以看到,这个出错是由于cuda.hpp文件不存在,但其实这个文件存在于opencv-contrib目录下,可以在代码中将其路径修改为文件所在目录对应的绝对路径。
sudo nano /home/pi/opencv-3.3.0/modules/stitching/src/precomp.hpp
#include "opencv2/xfeatures2d/cuda.cpp"
// 改为👇
#include "/.../opencv_contrib-3.3.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.cpp"
后续还遇到了两个hpp文件缺失的问题,用同样的方法解决即可。
AVFMT_RAWPICTURE未定义
nano /.../opencv/opencv-3.3.0/modules/videoio/src/cap_ffmpeg_impl.hpp
// 在顶部添加下列内容重新编译即可
#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020
缺少boostdesc_bgm.i
直接进入这个链接下载缺失的文件,然后将这些文件复制到/home/pi/opencv/opencv_contrib-3.3.0/modules/xfeatures2d/src目录即可继续编译。
无效的隐式转换 from const char* to char*
这个错误是在opencv最后关头出现的问题,由于编译日志太长导致看不到error,害我们一起找了半天,最后将输出重定向>
至文件中,才看到错误:
打开代码文件,在对应行进行强制类型转换(char *)
即可:
sudo nano /.../opencv/opencv-3.3.0/modules/python/src2/cv2.cpp
参考
安opencv_contrib出现无法打开包括文件: “opencv2/xfeatures2d/cuda.hpp”: 解决方法_人工智能_gbz3300255的博客-CSDN博客
树莓派交叉编译opencv3.4.1/pycharm安装opencv/实现人脸识别Demo记录_人工智能_simon曦的博客-CSDN博客