2013-08-21 22 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) 
相关问题