opencv-python版本如下:
3.4.2.16,
3.4.2.17, 該版本以後,opencv不支持(原因是這些特徵提取受專利保護,收費的了)
sift = cv2.xfeatures2d.SIFT_create()
surf = cv2.xfeatures2d.SURF_create()
3.4.3.18,
3.4.4.19,
3.4.5.20,
3.4.6.27,
3.4.7.28,
4.0.0.21,
4.0.1.23,
4.0.1.24,
4.1.0.25,
4.1.1.26
所以,如果想使用opencv的sift等相關特徵提取,需要降低版本,或者編譯sift,surf特徵模塊。相關編譯連接如下:
https://www.cnblogs.com/gengyi/p/10499964.html
如果安裝的版本比較新,則調用sift特徵會出現以下錯誤:
Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'cv::xfeatures2d::SIFT::create'。
其中如果需要opencv的格外模塊,則需要安裝opencv-contrib-python,而不是opencv-python。