У меня есть 3D-массив с некоторыми данными (растровое трехмерное изображение). Я хотел бы получить 2D разрез через этот массив, используя некоторую подходящую интерполяцию (предпочтительно линейную - это, вероятно, «трилинейная» в этом случае). Плоскость разреза может быть описана, однако, удобно, например, с использованием нормального вектора и расстояния.Как создать 2D-прорезь через трехмерное изображение?
Если разрез параллелен одной из осей, это тривиально, просто нарежьте 3D-массив (с помощью numpy index slice). Но если разрез не параллелен оси, я не вижу хорошего способа начать работу с этой проблемой. Единственное, что приходит в голову, это повернуть 3D-массив (возможно, используя композицию двумерных поворотов), чтобы разрез был параллелен оси, но это кажется ужасно неэффективным.
Я работаю в python с numpy, ndimage и skimage. Любые другие модули python можно считать доступными.
Вы можете вращать плоские координаты и использовать [ 'scipy.interpolate.RegularGridInterpolator'] (https://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.interpolate. RegularGridInterpolator.html) –
@ DanielForsman Большое спасибо, похоже, что это сработает. Вы можете отправить какой-то пример кода в качестве ответа, если хотите, я соглашусь с ним. –
Не знаю достаточно, чтобы получить полный ответ, это было скорее просто google-fu. –