如何计算图像中的 RGB 或 HSV 通道组合?

2024-05-09

我使用 python opencv 加载形状为 (30, 100, 3) 的图像,现在想要按颜色计算所有颜色的频率,我不是指单个通道,而是指通道组合。含义 3 个频道列表,例如[255, 0, 0] 表示红色,[255, 255, 0] 表示黄色,[100, 100, 100] 表示其他颜色。所以我希望将最后一个轴(通道)视为一个整体并计算其频率。

opencv或numpy中是否有任何内置函数可以轻松地将3通道列表视为一个元素并计算其频率?


你可以使用np.unique https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.unique.html以其新的axis进行分组的参数功能 -

np.c_[np.unique(im.reshape(-1,3), axis=0, return_counts=1)]

样本运行 -

In [56]: im
Out[56]: 
array([[[255, 255, 255],
        [255,   0,   0]],

       [[255,   0, 255],
        [255, 255, 255]]])

In [57]: np.c_[np.unique(im.reshape(-1,3), axis=0, return_counts=1)]
Out[57]: 
array([[255,   0,   0,   1],
       [255,   0, 255,   1],
       [255, 255, 255,   2]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算图像中的 RGB 或 HSV 通道组合? 的相关文章

随机推荐