用作输入的列拆分循环输出

时间:2015-04-03 20:24:03

标签: python loops numpy feature-detection

您好我相对较新的Python,目前正致力于测量图片中的要素宽度。我的图像分辨率为1米,因此测量宽度应该更容易。我设法选择图像的某些列或行,并使用循环等提取必要的数据。我的代码如下:

subset = imarray[:,::500]#(imarray.shape[1]/2):(imarray.shape[1]/2)+1]
subset[(subset > 0) & (subset <= 17)] = 1
subset[(subset > 17)] = 0


width = []
count = 0

for i in np.arange(subset.shape[1]):
    column = subset[:,i]
    for value in column:
        if (value == 1):
            count += 1
            width.append(count)
            width_arr = np.array(width).astype('uint8')
        else:
            count = 0


final = np.split(width_arr, np.argwhere(width_arr == 1).flatten())
final2 = [x for x in final if x != []]


width2 = []


for array in final2:
    width2.append(max(array))
width2 = np.array(width2).astype('uint8')
print width2

我无法弄清楚如何分割输出,以便分别显示每列或每行的结果。相反,我所能做的就是将数据附加到空列表中,并输出以下内容:

[ 70  35   4   2   5  36   4   5   2  51  97   4 228   3  21  47   7  21
  23  58 126   4 111   2   2   5   3   2  18  15   6  19   3   3  12  15
   6   8   2   4   6  88 122  24  14  49  73  57  74   6 179   8   3   2
   6   3 184   9   3  19  24   3   2   2   3 255  30   8 191  33 127   5
   3  27 112   2  24   2   5   2  10  30  10   6  37   2  38   6  12  17
  44  67  23   5 101  10   9   4   6   4 255 136   5 255 255 255 255  26
 255 235 148   4 255 199   3   2 114  87 255 109  69  12  41  20  30  57
  72  89  32]

因此,这些是附加在一起的所有列中的要素的宽度。如何使用我的循环或其他方法将它们分成单独的numpy数组,这些数组代表我从原始列中切出的每一列?

看起来我几乎就在那里,但我似乎无法想出最后一步,它让我疯狂。

提前感谢您的帮助!

0 个答案:

没有答案