AttributeError:模块'cv2.cv2'没有属性'xfeatures2d'[Opencv 3.4.3]

sin*_*ium 0 python opencv

我已经安装了opencv 3.4.3(使用pip3 install opencv-pythonpip3 install opencv-python-contrib

当我运行包含此行的代码时:
sift = cv2.xfeatures2d.SIFT_create()
我收到此错误:

AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d'
Run Code Online (Sandbox Code Playgroud)

xfeatures2d功能不再通过OpenCV的3.4.3支持?

小智 10

经过几个小时的拉扯和从头开始安装/编译所有内容之后,我需要将这篇文章发布给其他可能犯了与我相同的小愚蠢错误的人。

如果您的系统中同时安装了 opencv-python 和 opencv-contrib-python 并且仍然收到此错误,而不是

 sift = cv2.xfeatures2d.SIFT_create()
Run Code Online (Sandbox Code Playgroud)

尝试

 sift = cv2.SIFT_create()
Run Code Online (Sandbox Code Playgroud)


Joh*_*318 9

您收到的错误消息与该模块xfeatures2d不存在的事实有关。它与 SIFT 算法或任何算法都没有直接关系xfeatures2d(都将发送该错误)。我建议您重新安装opencv-contrib-python(pip install opencv-contrib-python),或者如果您使用的是 anaconda 或等效的从另一个源存储库重新安装两个 opencv 包。如果您对它感到满意,最后一个选项包括自己编译完整的 OpenCV(“常规”+ contrib)。

希望能帮助到你。


alk*_*asm 5

编辑:我的答案不正确。请参阅下面的其他答案

我的回答中提到的问题是解决其他问题的方法(在此处回答)。但是,由于您使用的OpenCV 3.4.3,我相信你会有不同的问题,以及。那是在这个答案原文现在是对对方的回答,因为它是正确的答案问题。