模块“cv2.cv2”没有属性“xfeatures2d”,模块“cv2.cv2”没有属性“SIFT”

Posted

技术标签:

【中文标题】模块“cv2.cv2”没有属性“xfeatures2d”,模块“cv2.cv2”没有属性“SIFT”【英文标题】:module 'cv2.cv2' has no attribute 'xfeatures2d' and module 'cv2.cv2' has no attribute 'SIFT' 【发布时间】:2020-06-04 23:15:19 【问题描述】:

我的 python 版本 = 3.7.4 cv2 版本= 4.2.0

这些是我在 python 和打开 cv 上的版本,我尝试使用 SIFT 函数,我得到了著名的错误模块cv2.cv2' has no attribute 'SIFT',所以我尝试了pip install opencv-contrib-pythonpython -m pip install --user opencv-contrib-python,我将detector=cv2.SIFT() 更改为@ 987654326@ 并且错误刚刚更改为 AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d'

我尝试了我发现的类似问题,但对我不起作用,我没有找到最近的问题,这就是我打开这个新问题的原因,因为也许版本不同,这可能是对我不起作用的原因

我还能做什么?

【问题讨论】:

这能回答你的问题吗? sift = cv2.xfeatures2d.SIFT_create() not working even though have contrib installed 【参考方案1】:

SIFT 和 SURF 是专有的专利算法。您需要从源代码编译 OpenCV 和 OpenCV-contrib,启用非免费包,构建 python 库。我无法让这个工作,所以我用 pip 找到了一个没有删除非免费库的旧版本(3.4.2)。我可能不得不回滚 python,但我不确定。我正在使用 python 3.6.8

【讨论】:

你是说 Python Version = 3.6.8 和 Opencv Version=3.4.2 ,你有 SIFT 工作吗? 我没有尝试过 SIFT,但我已经让 SURF 工作了。它受到同样的限制。我做了一个快速的import cv2detector =cv2.xfeatures2d.SIFT_create() 并且没有错误。

以上是关于模块“cv2.cv2”没有属性“xfeatures2d”,模块“cv2.cv2”没有属性“SIFT”的主要内容,如果未能解决你的问题,请参考以下文章

属性错误模块 'cv2.cv2' 没有属性 'videocapture'

AttributeError:模块'cv2.cv2'没有属性'cv'(类似的主题没有帮助)

OpenCV AttributeError 模块“cv2.cv2”没有属性“Tracker_create”

'cv2.cv2'没有属性'EM'

开放CV 4 |没有模块名称 cv2.cv2 |

AttributeError:“模块”对象没有属性“xfeatures2d”[Python/OpenCV 2.4]