fatal error opencv2 xfeatures2d No such file or directory特征匹配致命错误解决办法
OpenCV3对OpenCV的模块进行了调整,将开发中与nonfree非免费模块放在 了OpenCV_contrib中(SURF,SIFT),因此需要在OPENCV基础上安装opencv_contrib。
简单解决办法:
sudo add-apt-repository ppa:ignaciovizzo/opencv3-nonfree
sudo apt-get update
sudo apt install libopencv-dev
参考来源:https://stackoverflow.com/questions/27418668/nonfree-module-is-missing-in-opencv-3-0
还是有错误:undefined reference to `cv::xfeatures2d::SURF::create(double, int, int, bool, bool)'
collect2: error: ld returned 1 exit status
github上下载对应版本opencv_contrib并解压缩 https://github.com/opencv/opencv_contrib/releases?after=4.0.0-beta
$ cd ~/opencv
$ mkdir build
$ cd build
$ sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.1/modules/ ..
$ sudo make -j4
$ sudo make install
$ sudo ldconfig
安装完成后LINKING错误消失。
SURF特征匹配的错误:
OpenCV Error: Assertion failed (!_img.empty() && ((imgtype) & ((1 << 3) - 1)) == 0 && (imgcn == 1 || imgcn == 3 || imgcn == 4)) in detectAndCompute, file /home/nl/opencv_contrib-3.3.1/modules/xfeatures2d/src/surf.cpp, line 892
因为是Mat类型错误,原为CV_32FC1应转为CV_8UC1
Img.convertTo(img1, CV_8UC1);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)