制作由掩码选择的像素列表

时间:2017-02-25 17:21:23

标签: python opencv

我有一个图像和一个从该图像中选择像素的蒙版。我想列出这些像素,然后使用scipy.kmeans对它们进行聚类分析。 有没有比这更好的方法(例如我不知道的功能)

pixels = []
for irow,mrow in zip(img,mask):
    pixels += [pixel for pixel,mbyte in zip(irow,mrow) if mbyte==255]

1 个答案:

答案 0 :(得分:0)

使用numpy - boolean or "mask" index array

>>> import numpy as np
>>> img = np.array([[1, 2, 3],
...                 [4, 5, 6]])
>>> mask = np.array([[0, 255, 0],
...                  [255, 0, 0]])
>>> img[mask == 255]
array([2, 4])

如果您想要list而不是numpy.array,请使用list汇总结果:

>>> list(img[mask == 255])
[2, 4]