2012-05-22 26 views
8

Tôi đang cố gắng để tạo một đối tượng SURF trong python sử dụng OpenCV như mô tả here nhưng điều này sẽ xảy ra:Surf mất tích trong OpenCV 2.4 cho python

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

Có ai biết tại sao điều này xảy ra hoặc nếu SURF là mất tích từ Phiên bản Python của OpenCV?

+0

Đó chỉ hoạt động tốt lên đến 2.3.2, và các tài liệu nói nó cũng nên làm việc. Dir (cv2) cho bạn thấy điều gì? –

Trả lời

9

Đây là hồi quy cần được sửa trong bản cập nhật thư viện tiếp theo.

Nhưng SURF không thực sự vắng mặt. Bạn vẫn có thể truy cập nó thông qua những gói chung:

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

Cập nhật:cv2.SURF() được phục hồi trong OpenCV 2.4.1

+0

Cảm ơn, điều đó hoạt động. Ý bạn là gì khi bạn nói đó là hồi quy? –

+0

Một cái gì đó như thế này http://en.wikipedia.org/wiki/Software_regression –

+2

Ai đó có thể cho chúng tôi biết sự khác biệt giữa hai phiên bản (cv2.FeatureDetector_create ("SURF") là gì + cv2.DescriptorExtractor_create ("SURF") so với cv2.SURF()) mong rằng phiên bản thứ hai nhỏ gọn hơn? – lizzie