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