Как правильно отображать том с некубильными вокселями в майави

Я использую майави (3.3.2) для отображения объемных поверхностей.

Как правило, у моих томов нет кубических вокселей; например, сетка для отбора проб может быть 1 мм x 1 мм в X и Y, но 1,4 мм в направлении Z.

Как я могу отображать такие объемы с правильными пространственными пропорциями, используя mlab.contour3d или mlab.pipeline.iso_surface ? Я бы предпочел не перевыполнять объемы кубической сетке.

Другой способ изложить проблему: что я могу сделать, чтобы получить нижеприведенный код, чтобы отобразить сферу вместо сплющенного элипсоида (принимая volume с его предполагаемыми ваксами пропорций 1: 1: 2 как заданный и без регенерации или повторной дискретизации громкость).

 import numpy as np from enthought.mayavi import mlab def sqr(x): return x*x s=64 x,y,z = np.ogrid[0:s,0:s,0:s/2] volume = np.sqrt(sqr(xs/2)+sqr(ys/2)+sqr(2*zs/2)) isos = mlab.contour3d(volume,contours=[5,15,25],transparent=True) mlab.show() 

Я предполагаю, что должен быть какой-то способ попасть в базовый графический конвейер VTK (его преобразования и т. Д.) И вставить соответствующее анизотропное масштабирование (если нет какого-либо способа сделать это более непосредственно через mlab API).

One Solution collect form web for “Как правильно отображать том с некубильными вокселями в майави”

Для этого проще всего создать объект scalar_field из входных данных.

Я на самом деле делаю это довольно часто, так как нам нравится глубже (где положительно вниз) в геологии. Это означает, что вам нужно отрицательное приращение в направлении z. Было бы неплохо, если бы это был просто аргумент для различных функций mlab, но его все еще не так сложно сделать.

 from mayavi import mlab import numpy as np s=64 x,y,z = np.ogrid[0:s,0:s,0:s/2] data = np.sqrt((xs/2)**2 + (ys/2)**2 + (2*zs/2)**2) grid = mlab.pipeline.scalar_field(data) grid.spacing = [1.0, 1.0, 2.0] contours = mlab.pipeline.contour_surface(grid, contours=[5,15,25], transparent=True) mlab.show() 

Сферическая оболочка с некубиальными вокселями

  • Создание коррелированных данных в Python (3.3)
  • Python / Numba: Неизвестная ошибка атрибута с помощью scipy.special.gammainc ()
  • hdf5 не поддерживается (пожалуйста, установите / переустановите h5py) Scipy не поддерживается! при импорте TFLearn?
  • Ускорение scipy griddata для множественных интерполяций между двумя нерегулярными сетками
  • Деление Numles Cholesky LinAlgError
  • Python: дифференцирование между векторами строк и столбцов
  • Преобразование 1,2 Гбайт списка ребер в разреженную матрицу
  • поиск точек перегиба в сплайне
  • Python - лучший язык программирования в мире.