我有一个图像和一个从该图像中选择像素的蒙版。我想列出这些像素,然后使用 scipy.kmeans 对它们进行聚类分析。
有没有比这更好的方法(例如我不知道的函数)
pixels = []
for irow,mrow in zip(img,mask):
pixels += [pixel for pixel,mbyte in zip(irow,mrow) if mbyte==255]
最佳答案
使用 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]
关于python - 制作由掩码选择的像素列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42459184/