当我尝试:
sift = cv2.sift()
我最后得到以下信息:
AttributeError: module 'cv2.cv2' has no attribute 'sift'
我该如何解决?任何帮助,将不胜感激
最佳答案
简短回答:
如果有人在运行时出错
sift = cv2.SIFT_create()
确保你有sift = cv2.xfeatures2d.SIFT_create()
长答案:这可能不是这个特定问题的答案,但我决定把它写下来,以防万一有人像我一样觉得它有帮助。
我正在通过 Introduction to SIFT (Scale-Invariant Feature Transform) 学习 SIFT ,并尝试代码
sift = cv2.SIFT_create()
这告诉了我以下AttributeError: module 'cv2.cv2' has no attribute 'SIFT_create'
(编辑:the link above 中的默认文档版本是 4.4.0-pre。如果您将其切换到 4.3.0,文档会正确告诉您调用正确的方法。我想这意味着 SIFT 将在下一个4.4.0 版)然后我来到了这个问题,并在上面的评论中 the link from @Micka给了我答案,如简短答案所示。谢谢你米卡!
附言专利实际上已经过期,所以 SIFT 现在实际上是免费的,但是将 SIFT 移动到主要模块的工作is yet to be done此刻。
关于python-3.x - 模块 'cv2.cv2' 没有属性 'sift',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52318967/