当我尝试:
sift = cv2.sift()
最后我得到以下内容:
AttributeError: module 'cv2.cv2' has no attribute 'sift'
我该如何解决?任何帮助将不胜感激
答案 0 :(得分:1)
简短答案:
如果有人在运行时遇到错误
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上方的评论中给了我答案,如简短答案所示。谢谢米卡!
P.S。该专利实际上已经到期,因此SIFT现在实际上是免费的,但是到目前为止,将SIFT移至主要模块is yet to be done的工作。