2017-02-25 31 views
0

我有一個圖像和掩碼,從該圖像中選擇像素。我想列出這些像素,然後使用scipy.kmeans對它們進行聚類分析。 有沒有更好的方法(例如,我不知道的功能)使用比這使掩碼選擇的像素列表

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

'像素= IMG [掩模== 255]'或'像素=列表(IMG [掩模== 255])' – falsetru

回答

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來CONVER結果:

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

非常整潔,謝謝 –

+0

@HaydonBerrow,不客氣。快樂的Python編程。 – falsetru