10 Number of labels (default: 256).
14 cmap: numpy.ndarray, (N, 3), numpy.uint8
18 def bitget(byteval, idx):
19 shape = byteval.shape + (8,)
20 return np.unpackbits(byteval).reshape(shape)[..., -1 - idx]
22 i = np.arange(N, dtype=np.uint8)
23 r = np.full_like(i, 0)
24 g = np.full_like(i, 0)
25 b = np.full_like(i, 0)
27 i = np.repeat(i[:,
None], 8, axis=1)
28 i = np.right_shift(i, np.arange(0, 24, 3)).astype(np.uint8)
29 j = np.arange(8)[::-1]
30 r = np.bitwise_or.reduce(np.left_shift(bitget(i, 0), j), axis=1)
31 g = np.bitwise_or.reduce(np.left_shift(bitget(i, 1), j), axis=1)
32 b = np.bitwise_or.reduce(np.left_shift(bitget(i, 2), j), axis=1)
34 cmap = np.stack((r, g, b), axis=1).astype(np.uint8)