我正在用 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.]]])
添加回答
举报
0/150
提交
取消