如何找到图像中最常见的RGBA像素值



我有一张狗的照片,它的形状是(432, 575, 4)。ndarray中的第三个维度包含每个像素的RGBA值。我想找出最常见的像素是什么,即模式。

对于2d阵列,我可以使用以下行:np.unique(a, axis=0, return_counts=True)

然而,我不知道如何只比较三维数组的三维向量。这个问题类似,但它只适用于2d数组:在numpy数组中查找最常见的子数组。如果我简单地将axis更改为'=1',它不会给我所需要的结果。

由于您不关心图像的形状,您可以使用reshape压平您的图像,并使用链接的答案:

rgba, counts = np.unique(a.reshape(-1,4), axis=0, return_counts=True)
# the mode here
rgba[np.argmax(counts)]

相关内容

  • 没有找到相关文章

最新更新