Как сделать равными по глубине изображения? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть несколько nii изображений, каждое из которых имеет одинаковую высоту и ширину, но разную глубину.Так что мне нужно сделать глубину каждого изображения равной, как я могу это сделать?Также я не нашел ни одного кода Python, который мог бы мне помочь.

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Если вам просто нужно добавить нули к вашим данным, чтобы получить ту же глубину, вот способ сделать это:

import numpy as np

width = 2
height = 2
depth1 = 3
depth_max = 5

t = np.zeros(shape=(height, width, depth1))

print(t.shape)  # (2, 2, 3)

t_with_new_depth = np.block([t, np.zeros(shape=(height, width, depth_max - depth1))])

print(t_with_new_depth.shape)  # (2, 2, 5) with 0 on the newly added depth channels
0 голосов
/ 01 марта 2019

Как только вы определили нужную глубину для всех томов, пусть это будет D, вы можете создать экземпляр изображения (называемое объем , когда D> 1) размеров W x H x D, для каждого объемау вас есть.

Затем вы можете заполнить каждый такой объем, пиксель за пикселем, сопоставив положение пикселя с исходным объемом и получив значение пикселя путем интерполяции значений в соседних пикселях.

Например, пиксель (i_x, i_y, i_z) в новом томе будет отображен в точке (i_x, i_y, i_z ') старого тома.Одним из самых простых методов интерполяции является линейная интерполяция: значение (i_x, i_y, i_z) является средневзвешенным значением значений (i_x, i_y, floor (i_z ')) и (i_x, i_y, floor (i_z')+ 1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...