Python 哪种类型的列表是唯一的,如何操作它?
我使用OpenCV以这种方式检测轻快的关键点:Python 哪种类型的列表是唯一的,如何操作它?,python,opencv,computer-vision,Python,Opencv,Computer Vision,我使用OpenCV以这种方式检测轻快的关键点: img = cv2.imread(image_path) gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) kp, descriptors = cv2.BRISK_create().detectAndCompute(gray,None) kp是一个列表,但它也是一种结构。它具有参数或“子列表”,如kp.pt值、kp。响应值等等。我是Python的新手,所以我想知道以下内容 1-此列表是否有特定名称?它似乎不是我
img = cv2.imread(image_path)
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
kp, descriptors = cv2.BRISK_create().detectAndCompute(gray,None)
kp是一个列表,但它也是一种结构。它具有参数或“子列表”,如kp.pt值、kp。响应值等等。我是Python的新手,所以我想知道以下内容
1-此列表是否有特定名称?它似乎不是我在Python中使用的列表。如何获取有关此类列表的更多信息
2-我如何知道kp的其他参数(或“子列表”)是什么?我可以用Python打印它们吗
3-如何在变量中保存所有元素,例如kp.response?我只能索引像kp[1]这样的单个元素
4-如何对kp.response值进行排序,以获取N个最高kp.response值的索引?1-type(kp)
这将获取对象是其实例的类
2-dir(kp)
这应该列出对象的属性。对于某些非常动态的类型,它们会动态生成属性以响应访问尝试,这可能不起作用。(但它仍然可以,因为dir
也可以动态生成。)
在这种情况下,如果您可以在类的源代码中找到\uuu getattr\uuu
方法,它可能会为您提供这些动态属性实际存储在哪里的线索
3-[e.对kp中e的响应]
可能。通常情况下,如果它像那样不灵活,它也是不灵活的
4-print([i for uuu,i in sorted((e.response,i)for i,e in enumerate(kp))[-N:]])
尚未对此进行测试
还可以尝试help(kp)
,它可能会解释如何更好地使用它。使用help
处理您不理解的任何内容。它可能有一个docstring
现在我只需要弄清楚如何将结果列表用作kp索引
可能类似于
[kp[i]for i in index]
?请每次提问一个问题。1-好的,谢谢。2-对象的属性显示“append”、“count”、“extend”等函数,它们比变量属性更多的是列表属性(例如,有kp.pt、kp.response,还有其他属性吗?)!现在我只需要弄清楚如何使用结果列表作为kp indicatesx=[I for ui,I in sorted((e.response,I)for I,e in enumerate(kp))[-1000:]和show=[kp[I]for I in x]。非常感谢你,我从你身上学到了很多!