我有一个使用
bf = cv2.BFMatcher(cv2.NORM_L1,crossCheck=True)
matches = bf.match(des1,des2)
我想根据匹配项从我的kps1,kps2
列表中筛选不相关的关键点。我尝试以这种方式使用DMatch.trainIdx
、DMatch.queryIdx
字段:
new_kps1 = [kp if idx in match.trainIdx for idx,kp in enumerate(kps1) for match in matches]
我最终还是这样做的:
ls1 = []
ls2 = []
for m in matches:
ls1 += [kps1[m.trainIdx]]
ls2 += [kps2[m.queryIdx]]
这在列表理解中是可能的吗
可以使用Python习惯用法
zip(*x)
将元组列表转换为列表元组。这样,您可以在开始时只记录元组:你甚至可以把它放在一行,以可读性为代价:
相关问题 更多 >
编程相关推荐