简体   繁体   English

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

[英]feature descriptor for a given 2d point in an image

Trying to get a descriptor for a predefined point using python opencv3. 尝试使用python opencv3获取预定义点的描述符。 The goal is to provide a set of points for a given image and get their corresponding feature descriptors. 目的是为给定图像提供一组点,并获取其相应的特征描述符。 I'm open to using SIFT, SURF, Brief, ORB, and basically any descriptor. 我愿意使用SIFT,SURF,Brief,ORB和基本上任何描述符。 However, I do not want to use any of the detection methods provided. 但是,我不想使用提供的任何检测方法。 I have created the following: 我创建了以下内容:

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)

However, I get the following error. 但是,出现以下错误。

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

SystemError: error return without exception set SystemError:错误返回,没有设置异常

Any suggestions? 有什么建议么?

Ok, resolving the matter ended up being simple. 好的,解决这个问题很简单。 The correct code snippet looks like the following: 正确的代码段如下所示:

feat_object = cv2.xfeatures2d.BriefDescriptorExtractor_create() feat_object = cv2.xfeatures2d.BriefDescriptorExtractor_create()

define keypoint for a single 2d point 为单个2d点定义关键点

pt = [cv2.KeyPoint(point[0,0],point[1,0], 10)] pt = [cv2.KeyPoint(point [0,0],point [1,0],10)]

create feature descriptor 创建特征描述符

out = feat_object.compute(frame, pt) out = feat_object.compute(frame,pt)

with frame defined as a grayscale image and pt being a list of keypoints. 框架定义为灰度图像,而pt为关键点列表。 So even if you only want to process a single keypoint, you still are required to pass it in as a list. 因此,即使您只想处理单个关键点,也仍然需要将其作为列表传递。

I've only tested this out in opencv2. 我只在opencv2中进行了测试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM