Python 图像中给定2d点的特征描述符

Python 图像中给定2d点的特征描述符,python,opencv3.1,Python,Opencv3.1,尝试使用python opencv3获取预定义点的描述符。目标是为给定的图像提供一组点,并获得相应的特征描述符。我愿意使用SIFT、SURF、Brief、ORB和基本上任何描述符。但是,我不想使用提供的任何检测方法。我创建了以下内容: feat_object = cv2.xfeatures2d.BriefDescriptorExtractor_create() # define keypoint for a single 2d point pt = cv2.KeyPoint(point[0,0

尝试使用python opencv3获取预定义点的描述符。目标是为给定的图像提供一组点,并获得相应的特征描述符。我愿意使用SIFT、SURF、Brief、ORB和基本上任何描述符。但是,我不想使用提供的任何检测方法。我创建了以下内容:

feat_object = cv2.xfeatures2d.BriefDescriptorExtractor_create()

# define keypoint for a single 2d point
pt = cv2.KeyPoint(point[0,0],point[1,0], 10)

# create feature descriptor
out = feat_object.compute(frame, pt)
但是,我得到了以下错误

---->out=feat_object.compute(帧,pt)

SystemError:返回错误,未设置异常


有什么建议吗?

好的,解决问题很简单。正确的代码段如下所示:

feat_object = cv2.xfeatures2d.BriefDescriptorExtractor_create()

# define keypoint for a single 2d point
pt = cv2.KeyPoint(point[0,0],point[1,0], 10)

# create feature descriptor
out = feat_object.compute(frame, pt)
feat_object=cv2.xfeature2d.BriefDescriptorExtractor_create()

为单个二维点定义关键点 pt=[cv2.关键点(点[0,0],点[1,0],10)]

创建特征描述符 out=feat_object.compute(帧,pt)

帧定义为灰度图像,pt为关键点列表。因此,即使您只想处理单个关键点,您仍然需要将其作为列表传递

我只在opencv2中测试过这个