首页 > 解决方案 > ndarray中列表的出现

问题描述

我有一个 RGB 图像 -ndarray-,我想计算此图像中某些颜色的出现,例如 [255,0,0] 或 [0,0,255]。

图像数据示例

np.ones((3, 3, 3)) * 255

array([[[255., 255., 255.],
        [255., 255., 255.],
        [255., 255., 255.]],
       [[255., 255., 255.],
        [255., 255., 255.],
        [255., 255., 255.]],
       [[255., 255., 255.],
        [255., 255., 255.],
        [255., 255., 255.]]])

所以结果我想要这样的东西

{
'[255,255,255]' : 9,
}

标签: pythonnumpyimage-processingnumpy-ndarray

解决方案


一种解决方案可能是Counter函数:

from collections import Counter
import numpy as np

# Generate some data
data = np.ones((10, 20, 3)) * 255

# Convert to tuple list
data_tuple = [ tuple(x) for x in data.reshape(-1,3)]
Counter(data_tuple)

回报:

Counter({(255.0, 255.0, 255.0): 200})

推荐阅读