Я пытаюсь преобразовать 3-канальный массив Numpy в один канал NUMPY. Я хочу объединить все 3 значения элемента в 1 число, используя:
x << 16 + y << 8 + z </p>
Мой код, приведенный ниже, делает это, но кажется, что многие цифры равны нулю. Это верно? Или я что-то не так делаю? Должны ли эти последние 2 числа быть нулем или чем-то еще?
ar = np.array((
((255,255,255),),
((255,20,255),),
((0,255,255),), # this becomes zero, is that correct?
((22,10,12),), # this becomes zero, is that correct?
), dtype='uint8')
c1,c2,c3 = cv2.split(ar)
single = np.int32(c1) << 16 + np.int32(c2) << 8 + np.int32(c3)
print(single)
print(ar.shape)
[[1069547520]
[522240]
[0]
[0]]
(4, 1, 3)