所以我试着使用:
sift = cv2.xfeatures2d.SIFT_create()
然后它就会出现这个错误:
cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented)
This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake
option and rebuild the library in function 'cv::xfeatures2d::SIFT::create'
我正在使用Python 3.5.0
和opencv(3.4.3)
,我只是在使用idle。这是在我尝试安装TensorFlow之后发生的,我已经安装了opencv-contrib-python,但是仍然收到同样的错误。提前感谢您,如果我没有包含足够的信息,我道歉
发布于 2021-08-11 06:19:23
自从SIFT专利到期后,SIFT已经移到了主回购上。要在Opencv中使用SIFT,现在应该使用cv2.SIFT_create()而不是cv2.xfeatures2d.SIFT_create()。(xfeatures2d只存在于contrib包中,但sift现在是主包的一部分。)
发布于 2018-09-13 16:24:41
这可能是由于opencv版本和opencv-contrib版本不匹配造成的。如果是使用CMake从源安装opencv,并且源版本与opencv-contrib-python的版本不同,请卸载当前的opencv-contrib-python,然后执行pip install opencv-contrib-python==<version of the source>.X
或其他兼容版本。我运行的一个版本设置是opencv source (3.2),opencv-python (3.4.0.14)和opencv-contrib-python (3.4.2.17)
https://stackoverflow.com/questions/52305578
复制相似问题