gpt4 book ai didi

python - 将模块从 opencv_contrib 添加到 OpenCV

转载 作者:太空狗 更新时间:2023-10-29 17:54:46 26 4
gpt4 key购买 nike

我正在尝试将 opencv_contrib 中的 xfeatures2d 模块添加到现有的 OpenCV/Python 项目中。

我已经从 the repo 下载了最新版本的模块,并使用以下附加参数再次构建 OpenCV:

OPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib-master/modules
BUILD_opencv_xfeatures2d=ON

构建日志摘录:

-- Installing: /usr/local/lib/python2.7/site-packages/cv2.so
-- Installing: /usr/local/lib/python3.4/site-packages/cv2.so
-- Installing: /usr/local/lib/libopencv_xfeatures2d.3.0.0.dylib

看来新模块已正确安装。我能够在两个 Python 版本中导入 cv2。然而,两者都无法识别模块应该添加的新功能。

>>> cv2.SURF()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'SURF'
>>> cv2.xfeatures2d.SURF()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'xfeatures2d'

最佳答案

我遇到了同样的问题。我正在使用 python 2.7.6 和 OpenCv 3.0 以及额外的非免费模块。我确实在可用模块中存在 xfeatures2d 并且可以导入它,但是它好像 xfeatures2d 不包含 SIFT 或 SURF。无论我如何调用它们都是相同的错误:

"AttributeError: 'module' object has no attribute 'SIFT'

我尝试了建议的不同命名空间,直到最近才注意到这个细节并且成功了!

$ python

>>>import cv2

>>>help(cv2.xfeatures2d)

你会注意到它回复说它现在被称为...

FUNCTIONS

SIFT_create(...)

SURF_create(...)

非常简单 - 命名空间不是“cv2.SIFT()”或“cv2.xfeatures2d.SIFT”而是

cv2.xfeatures2d.SIFT_create()

请试一试!

关于python - 将模块从 opencv_contrib 添加到 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26059134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com