我有一张狗的照片,它的形状是(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)]