Создание многомерного тензора - PullRequest
0 голосов
/ 15 октября 2019

У меня есть список трехмерных изображений, представленных в массиве размером 50х50х50. Каждый элемент этого трехмерного массива является пикселем. Я дифференцировал каждый пиксель в направлении x, y, z. Как я могу представить это в массиве?

После дифференцирования я получаю список размером 3, и в каждом индексе есть 50,50,50. Поэтому список имеет дифференцированное изображение для направления x, y и z, что очень близко к тому, что я хочу. Но я бы хотел массив, который был бы 50,50,50,3, а не 3,50,50,50. Это то, что я хотел бы представить. Каждый пиксель имеет значения для x, y и z

Мой код:

array_image=full_image[0:50,0:50,0:50] 
Gradient=np.gradient(array_image)




1 Ответ

0 голосов
/ 15 октября 2019

Если вы внимательно посмотрите на документ np.gradient, он на самом деле возвращает то, что вы хотите, но с другой формой.

Градиент: ndarray или список ndarray. Набор ndarrays (или один ndarray, если существует только одно измерение), соответствующий производным f по каждому измерению. Каждая производная имеет ту же форму, что и f.

Таким образом, ваш Gradient представляет собой список градиентов для array_image, соответствующих каждому измерению.

res = np.zeros([50,50,50,3])
for i in range(3):
    res[:,:,:,i] = Gradient[i]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...