为了账号安全,请及时绑定邮箱和手机立即绑定

从具有特殊值的 cv2.HoughLines 数组中删除行

从具有特殊值的 cv2.HoughLines 数组中删除行

动漫人物 2022-06-14 17:52:27
我正在用 opencv 扫描图片以查找线条。根据文档,每件事都按计划进行。lines = cv.HoughLines(edges,1,np.pi/180,200)for line in lines:    rho,theta = line[0]我的图片有很多线条,我只想在做之前继续使用水平线for line in lines:但是因为条目是嵌套的,所以我找不到删除元素的合适解决方案。行0 = 0 的所有条目都应保留在数组行中。我试图从列表列表中修改此线程 numpy delete list element但元素不在列表列表中的解决方案。单个元素位于列表列表中。示例:我希望第四个元素是唯一剩下的。lines = ([[564.,1.57079637]],[[566.,1.57079637]],[[547.,1.57079637]],[[549.,0]],[[549.,1.57079637]],[[496.,1.57079637]])
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

您的示例lines是嵌套列表的元组。然而,返回值cv.HoughLines是一个形状为 (n,1,2) 的 numpy 数组。为了制作一个可行的例子cv.HoughLines,我们将使用lines = np.array(([[564.,1.57079637]],[[566.,1.57079637]],[[547.,1.57079637]],[[549.,0]],[[549.,1.57079637]],[[496.,1.57079637]])).

您可以使用列表理解:

lines = np.array([x for x in lines if x[0][1] == 0])

结果:

array([[[549.,   0.]]])


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信