如何从二维numpy数组中获取唯一像素



我有一个带有rgb像素数据的2d数组(2行,一行3个像素(。

[[[255, 255, 255],[3, 0, 2],[255, 255, 255]],[[255, 255, 255],[3, 0, 2],[255, 255, 255]]]

如何获得唯一像素?我想要

[[255, 255, 255], [3, 0, 2]]

我尝试将np.uniquenp.transposenp.reshape一起使用,但未能获得所需的结果。

将阵列重塑为2D,然后将np.uniqueaxis=0一起使用

arr = np.array([[[255, 255, 255],[3, 0, 2],[255, 255, 255]],[[255, 255, 255],[3, 0, 2],[255, 255, 255]]])
shape = arr.shape
arr = arr.reshape((shape[0] * shape[1], shape[2]))
print(np.unique(arr, axis=0))

输出

[[  3   0   2]
[255 255 255]]

这个怎么样?

import itertools
np.unique(np.array(list(itertools.chain(*arr))), axis=0)
array([[  3,   0,   2],
[255, 255, 255]])

最新更新