【发布时间】:2016-01-01 15:54:41
【问题描述】:
我是 Python 的初学者,但我想我有一个简单的问题。我正在使用图像处理来检测图像中的线条
lines = cv2.HoughLinesP(edges,1,np.pi/180,50,minLineLength,maxLineGap)
lines.shape 是 (151, 1, 4) 表示我已经检测到 151 条线,并且有 4 个参数 x1、y1、x2、y2。
我想要做的是向线条添加另一个因素,称为坡度,从而将 lines.shape 增加到 (151, 1, 5)。我知道我可以在行尾连接一个空的零数组,但是我该如何制作它以便我可以在 for 循环等中调用它?
比如我想能够说
for slope in lines
#do stuff
【问题讨论】:
-
slope是否需要属于同一个数组?不能只是另一个数组吗?在您的“循环”中,#do stuff是什么?它是对单个数字还是对 151 个值的数组进行操作? -
for x in lines:迭代数组的第一维。lines[:,:,-1]给出数组的最后一个“列”(连接后的“斜率”列)。 -
最终,我想采用(大致)相同坡度和位置的所有线,并将它们删除,直到每个位置都有一条线。 (我应该只在我的图片中找到 4 条线,但 houghlinesp 找到了 151 条,其中大部分是靠近的或彼此重叠的)。因此,不必从坡度和线条中删除元素,我可以从线条中删除。
标签: python-2.7 opencv numpy multidimensional-array