2012-05-22 74 views
8

我试图描述here实例化一个对象SURF使用OpenCV的蟒蛇,但出现这种情况:冲浪失踪OpenCV的2.4蟒蛇

>>> 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' 

有谁知道为什么发生这种情况,或者如果SURF从失踪Python版本的OpenCV?

+0

这工作就好了2.3.2,以及文档说也应该工作。 dir(cv2)显示你什么? –

回答

9

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

但是SURF并不是真的不存在。您仍然可以通过通用的包装访问:

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

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

+0

谢谢,这是有效的。当你说这是一个回归时,你的意思是什么? –

+0

类似这样的http://en.wikipedia.org/wiki/Software_regression –

+2

有人可以告诉我们两个版本之间的区别是什么(cv2.FeatureDetector_create(“SURF”)+ cv2.DescriptorExtractor_create(“SURF”)vs. cv2.SURF())期望第二个版本更紧凑? – lizzie