2013-08-21 21 views
-1
img = np.asarray(Image.open("testtwo.tif").convert('L'))# reading and converting image       
    img = 1 * (img < 127) 

    arraysplit = np.split(img.ravel(), 24) # here we are splitting converted to 1D array 

如何獲取內部包含一些白色像素數的子陣列陣列?如何根據每個子陣列中的白色像素數對NumPy子陣列進行排序?

+1

你問[非常類似的問題六倍已經(HTTP://計算器.com/users/1101793/kvasdub?tab = questions),但你從未接受過答案。請接受答案並停止一次又一次發佈相同的問題。 –

回答

0

要計算零的子陣,你可以做到這一點的數量:

zeros = [(q==0).sum() for q in arraysplit] 
2

可以使用key關鍵字參數sorted做到這一點:

arraysplit = np.split(img.ravel(), 24) 

splits_by_white_count = sorted(arraysplit, key=lambda a: (a == 256).sum()) 

然後splits_by_white_count將是一個圖像數據的分割列表,按照白色像素的數量增加排序(假設您有8位圖像數據)。

如果你只是喜歡白色的像素數的列表,以便您可以進行排序基督教的解決方案:

white_counts = sorted((a == 256).sum() for a in arraysplit) 
相關問題