-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

如何获取包含按某种顺序包含多个白色像素的子数组的数组?

4

2 回答 2

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 位图像数据)。

如果您只想按顺序列出白色像素计数,您可以对 Christian 的解决方案进行排序:

white_counts = sorted((a == 256).sum() for a in arraysplit)
于 2013-08-21T14:55:12.620 回答
0

要计算子数组中零的数量,您可以这样做:

zeros = [(q==0).sum() for q in arraysplit]
于 2013-08-21T14:30:04.750 回答