OpenCV的Python绑定,AttributeError:';模块';对象没有属性';FeatureDetector_创建';

OpenCV的Python绑定,AttributeError:';模块';对象没有属性';FeatureDetector_创建';,python,opencv,computer-vision,surf,object-detection,Python,Opencv,Computer Vision,Surf,Object Detection,我正在使用OpenCV 2.4.X和OpenCV 3.1的python绑定,但使用以下简单的两行代码 import cv2 detector = cv2.FeatureDetector_create("SURF") 我得到以下输出: Traceback (most recent call last): File "version_test.py", line 3, in <module> detector = cv2.FeatureDetector_create("S

我正在使用OpenCV 2.4.X和OpenCV 3.1的python绑定,但使用以下简单的两行代码

import cv2
detector = cv2.FeatureDetector_create("SURF")
我得到以下输出:

Traceback (most recent call last):
   File "version_test.py", line 3, in <module>
    detector = cv2.FeatureDetector_create("SURF")
AttributeError: 'module' object has no attribute 'FeatureDetector_create'
回溯(最近一次呼叫最后一次):
文件“version_test.py”,第3行,在
检测器=cv2。特征检测器创建(“SURF”)
AttributeError:“模块”对象没有属性“FeatureDetector\u create”

每个版本中出现此错误的原因是什么

对于2.4.X版本,我似乎也需要opencv-devel和opencv-debuginfo(rpm/deb)包

关于3.1版本,这些功能已被删除,以支持以下功能

detector = cv2.TYPE_create()

其中
TYPE
可以是
ORB
或您选择的其他检测器,但不能是移动到包装中的
SURF
SIFT
。有关更多信息,请检查此项。

您也可以使用以下代码行:

detector=cv2.xfeatures2d.SURF_create()
您还可以设置Hessian阈值

detector=cv2.xfeatures2d.SURF_create(400)

在这里,Hessian Threshold=400

您的示例适用于我,使用版本2.4.2。我认为您没有版本2.4.3。您的输出显示版本为
$Rev:4557$
,看起来像subversion版本。OpenCV在去年夏天停止使用subversion,2.4.3在秋季发布(请参阅)。谢谢,似乎我还需要OpenCV-devel和OpenCV-debuginfo rpm软件包。@pevogam既然您找到了问题的答案,能否将其作为答案发布,并接受您的答案,以便将此问题标记为“已回答”?检查此项:首先,您需要安装所有opencv\u contrib:为什么这会解决问题?另外,请格式化代码,使其易于阅读。