1.opencv4.10需要安装opencv_contrib才能使用sift
OPENCV_ENABLE_NONFREE:BOOL=ON
将opencv_contrib移到opencv目录下,按以下方式重新编译:
mkdir build
cd build
sudo cmake -D OPENCV_ENABLE_NONFREE:BOOL=ON CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.1.0/modules ..
sudo make -j8
sudo make install
2.修改头文件
#include <opencv2/nonfree/nonfree.hpp>
需改为
#include <opencv2/xfeatures2d/nonfree.hpp>
3.CMake Error
CMake Error at CMakeLists.txt:11 (message):
FATAL: In-source builds are not allowed.
You should create a separate directory for build files.
-- Configuring incomplete, errors occurred!
解决办法:
sudo rm CMakeCache.txt
然后重新编译opencv
4.Failed to load module “canberra-gtk-module”
解决办法:
sudo apt-get install libcanberra-gtk-module
5.opencv4.1版本相对于opencv2.4版本需要修改的写法:
(OpenCV2.4)SiftFeatureDetector
改为
(opencv4.1)cv::xfeatures2d::SiftFeatureDetector
SiftDescriptorExtractor
写法改为cv::xfeatures2d::SiftDescriptorExtractor