2012-05-22 72 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