2017-02-25 6 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]) 

あなたの代わりにnumpy.arraylistをしたい場合は、にlistを使用CONVER結果:

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

とてもすっきりしました、ありがとうございます –

+0

@HaydonBerrow、よろしいですか? Happy Pythonプログラミング。 – falsetru

関連する問題