Предположим, я хочу представить изображение размером H * W с 3 цветовыми каналами (RGB) в массивном трехмерном массиве, так чтобы размер был (H, W, 3).Давайте возьмем простой пример (4,2,3).Таким образом, мы создаем массив, подобный этому - img = np.arange(24).reshape(4,2,3)
.
Чтобы соответствовать аналогии с приведенным выше примером изображения, значения элементов должны быть -
Channel R: [0,1],[2,3],[4,5],[6,7]
Channel G: [8,9],[10,11],[12,13],[14,15]
Channel B: [16,17],[18,19],[20,21],[22,24]
, т. Е. 3внешний массив и выше массивы, вложенные внутрь.
Однако, результат np.arange(24).reshape(4,2,3)
будет -
array([[[ 0, 1, 2],
[ 3, 4, 5]],
[[ 6, 7, 8],
[ 9, 10, 11]],
[[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23]]])
Если я хочу первую строку первого канала, то есть img[0,:,0]
, яожидал [0,1] как результат, но я на самом деле получу [0,3] обратно.
Я понимаю, что если я инициализирую ndarray с формой (3,4,2), я получу то, чтоЯ ищу.Но я хочу работать с обычной формой (H, W, глубина).
Не могли бы вы помочь мне понять пробел в моем понимании?