你可以这样做:
# the three channels
r = np.array([255, 255, 0])
g = np.array([0, 255, 255])
b = np.array([255, 255, 255])
label_seg = np.zeros((img.shape[:2]), dtype=np.int)
label_seg[(img==r).all(axis=2)] = 0
label_seg[(img==g).all(axis=2)] = 1
label_seg[(img==b).all(axis=2)] = 2
因此,如果
img = np.array([[r,g,b],[r,r,r],[b,g,r],[b,g,r]])
然后,
label_seg = array([[0, 1, 2],
[0, 0, 0],
[2, 1, 0],
[2, 1, 0]])