循环慢,打印结果出乎意料

时间:2018-11-29 22:07:02

标签: python-3.x

我有一个称为像素点的像素坐标数组(从蒙版图像中跳出来):

pixelpoints = np.transpose(np.nonzero(masked_orig))

,我想接收“ masked_orig”图像中每个像素的颜色信息。 因此,我首先对pixellist进行了一些评估:

a = pixelpoints.size
print("pixelpoints.size {} ".format(a))
b = len(pixelpoints)
print("len pixelpoints {} ".format(b))
c = pixelpoints[0][:2]
print("c:", c)
d = masked_orig[c[0],c[1]]
print("d:", d)

这给了我以下输出:

pixelpoints.size 95604 

a: 95604

len pixelpoints 31868 

c: [ 62 134]

d: [131 126 128]

我启动了一个for循环,以将所有这些像素集中在一个列表中,以执行K-Means分析:

pixelliste = []
for pixel in range(len(pixelpoints)):
    c = pixelpoints[pixel][:2]
    d = masked_orig[c[0],c[1]]
    pixelliste.append(d)

不仅for循环真的很慢,它还会在之后产生一些奇怪的输出

print("pixelliste: ", pixelliste)

显示如下: ...,数组([128,140,146],dtype = uint8),数组([132,146,152],dtype = uint8),数组([132,146,152],dtype = uint8),数组([132,146,152],dtype = uint8)]

也许我没有意识到循环的更短(更快)方式,我对输出有些困惑。 我请你提供建议...

0 个答案:

没有答案