Типичные скалярные объемные данные состоят из 3-D массива данных и трех координатных массивов одинаковых размеров. Массивы координат определяют координаты x, y и z для каждой точки данных.
Единицы координат зависят от типа данных. Например, данные потока могут иметь единицы координат дюймов и единицы данных psi.
Ряд функций MATLAB ® полезны для визуализации скалярных данных:
Плоскости среза позволяют исследовать распределение значений данных в объеме путем сопоставления значений цветам. Плоскости среза можно ориентировать под произвольными углами, а также использовать непланарные срезы. (Иллюстрации использования плоскостей среза см. в разделе slice, пример среза громкости и плоскости среза, используемые для отображения контекста.) Можно указать данные, используемые для окраски изоповерхностей, что позволяет отображать различную информацию по цвету и форме поверхности (см. isocolors).
Контурные срезы - это контурные графики, построенные в определенных координатах объема. Контурные графики позволяют видеть, где в заданной плоскости значения данных равны. Посмотрите contourslice например.
Изоповерхности - это поверхности, построенные с использованием точек равной величины в качестве вершин patch графические объекты.
Пример скалярных данных включает в себя данные магнитно-резонансной томографии (МРТ). Эти данные обычно содержат ряд плоскостей среза, взятых через объем, например тело человека. MATLAB включает в себя набор данных МРТ, который содержит 27 фрагментов изображения человеческой головы. Этот пример иллюстрирует следующие методы, применяемые к данным МРТ:
Серия 2-D изображений, представляющих фрагменты в головке
2-D и 3-D контурные срезы, взятые в произвольных местоположениях в данных
Изо-поверхность с изокапами, показывающими поперечное сечение внутренней части
Данные МРТ, D, сохранен как множество 128 на 128 на 1 на 27. Третий размер массива обычно используется для данных цвета изображения. Однако, поскольку это индексированные изображения (карта цветов, map, также загружено) в третьем измерении нет информации, которую можно удалить с помощью squeeze команда. Результат - множество 128 на 128 на 27.
Первым шагом является загрузка данных и преобразование массива данных из 4-D в 3-D.
load mri D = squeeze(D);
Чтобы отобразить одно из изображений МРТ, используйте image команда:
figure colormap(map) image_num = 8; image(D(:,:,image_num)) axis image

Сохраните пределы осей X и Y для использования в следующей части примера:
x = xlim; y = ylim;
Визуализируйте данные МРТ как объемные данные, поскольку они представляют собой набор фрагментов, последовательно проходящих через объект 3-D. Использовать contourslice для отображения контурного графика объемного фрагмента. Создайте контурный график с той же ориентацией и размером, что и изображение, созданное в первой части этого примера.
Для улучшения видимости деталей в этом контурном графике используется jet colormap. brighten функция уменьшает яркость значений цвета.
cm = brighten(jet(length(map)),-.5); figure colormap(cm) contourslice(D,[],[],image_num) axis ij xlim(x) ylim(y) daspect([1,1,1])

В отличие от изображений, которые являются 2-D объектами, контурные фрагменты являются 3-D объектами, которые можно отображать в любой ориентации. Например, можно отобразить четыре фрагмента контура на виде 3-D.
figure colormap(cm) contourslice(D,[],[],[1,12,19,27],8); view(3); axis tight

Для отображения общей структуры объема можно использовать изоповерхности. При сочетании с изокапами этот метод может выявить информацию о данных о внутренней части изоповерхности.
Во-первых, сглаживание данных с помощью smooth3; затем использовать isosurface для расчета изодата. Использовать patch для отображения этих данных на рисунке, использующем исходную карту цветов серой шкалы для изокап.
figure colormap(map) Ds = smooth3(D); hiso = patch(isosurface(Ds,5),... 'FaceColor',[1,.75,.65],... 'EdgeColor','none'); isonormals(Ds,hiso)
isonormals функция визуализирует изоповерхность, используя нормали вершин, полученные из сглаженных данных, улучшая качество изоповерхности. Изоповерхность использует один цвет для представления своего изовального значения.
Использовать isocaps для вычисления данных для другого исправления, отображаемого в том же самом изовалюте (5) в качестве изоповерхности. Использовать несмутированные данные (D), чтобы показать детали интерьера. Вы можете видеть это как отрезанную верхнюю часть головы. Нижняя изокапа не видна на конечном виде.
hcap = patch(isocaps(D,5),... 'FaceColor','interp',... 'EdgeColor','none');
Определите вид и задайте пропорции (view, axis, daspect).
view(35,30) axis tight daspect([1,1,.4])
Добавление освещения и пересчет нормалей поверхности на основе градиента объемных данных, что приводит к более плавному освещению (camlight, lighting, isonormals). Увеличить AmbientStrength свойство изокапа осветлять окраску без воздействия на изоповерхность. Установите SpecularColorReflectance изоповерхности, чтобы сделать цвет зеркального отраженного света ближе к цвету изоповерхности; затем установите SpecularExponent для уменьшения размера зеркального пятна.
lightangle(45,30); lighting gouraud hcap.AmbientStrength = 0.6; hiso.SpecularColorReflectance = 0; hiso.SpecularExponent = 50;
Изокап в сочетании с изоповерхностью для визуализации данных МРТ.

В изокапах используется интерполированная раскраска лица, что означает, что цветовая карта фигуры определяет раскраску пластыря. В этом примере используется карта цветов, поставляемая с данными.
Чтобы отобразить изокапы при других значениях данных, попробуйте изменить значение изоповерхности или используйте subvolume команда. См. раздел isocaps и subvolume справочные страницы для примеров.