Я пытаюсь разработать ответ, но ваш вопрос неясен, и то, что я хочу сказать, не форматируется и не помещается в комментарии, поэтому я начну с частичного ответа и отредактирую / разработаю его, как вы поясните..
Вы не говорите, что ваше изображение одноканальное, но так как вы назначаете 3 метки как 316067, 213676 и 1000, я предполагаю, что один канал.Правильно?
Давайте синтезируем образец изображения:
im = np.arange(0,65536*65536,8192,dtype=np.uint32).reshape(1024,-1)
Это дает im
как 1024x512 пикселей и значения как:
array(
[[ 0, 8192, 16384, ..., 4177920, 4186112],
[ 4194304, 4202496, 4210688, ..., 8372224, 8380416],
...,
[4282384384, 4282392576, 4282400768, ..., 4286562304, 4286570496],
[4286578688, 4286586880, 4286595072, ..., 4290756608, 4290764800],
[4290772992, 4290781184, 4290789376, ..., 4294950912, 4294959104]],
dtype=uint32)
И это дает числоуникальные ярлыки / цвета как:
len(np.unique(im))
524288
Итак, это представитель?А теперь, как вы в настоящее время получаете 16-битное изображение?И почему?