【问题标题】:Surf missing in opencv 2.4 for pythonpython的opencv 2.4中缺少冲浪
【发布时间】:2012-05-22 20:23:42
【问题描述】:

我正在尝试使用 OpenCV 在 python 中实例化一个 SURF 对象,如 here 所述,但发生了这种情况:

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

有谁知道为什么会发生这种情况,或者 Python 版本的 OpenCV 中是否缺少 SURF?

【问题讨论】:

  • 直到 2.3.2 都可以正常工作,文档说它也应该可以工作。 dir(cv2) 显示什么?

标签: python opencv surf


【解决方案1】:

这是一个回归,应该在下一次库更新中修复。

但 SURF 并没有真正缺席。您仍然可以通过通用包装器访问它:

surf_detector = cv2.FeatureDetector_create("SURF")
surf_descriptor = cv2.DescriptorExtractor_create("SURF")

更新: cv2.SURF() 在 OpenCV 2.4.1 中恢复

【讨论】:

  • 谢谢,这行得通。当你说它是一种回归时,你是什么意思?
  • 谁能告诉我们这两个版本有什么区别(cv2.FeatureDetector_create("SURF") + cv2.DescriptorExtractor_create("SURF") vs. cv2.SURF()) 期望第二个版本更紧凑?
  • 真的在 2.4.1 中修复了吗?我正在尝试使用 2.4.2 并看到同样的错误。
  • @AndreyKamaev:在结果对象上调用getParams() 时出现段错误;我该怎么做将upright 设置为True?
猜你喜欢
  • 2012-08-21
  • 1970-01-01
  • 2023-03-16
  • 2023-03-15
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
相关资源
最近更新 更多