Объемная визуализация Matlab 3D и наложение 3D

Вопрос скорее в заголовке.

У меня есть 3D-том, загруженный как необработанные данные [256, 256, 256] = size(A). Он содержит только значения нулей и единиц, где 1 представляют структуру, а 0 - «воздух».

Я хочу визуализировать структуру в MATLAB, а затем запустить на ней алгоритм и наложить на нее наложение, скажем, красного цвета.

Итак, если быть более точным:

  1. Как визуализировать 3d объем. 0-прозрачный, 1-полупрозрачный?
  2. Построить линию в 3D-визуализации в виде наложения?

Я уже читал учебники MathWorks, и они не помогли. Я пытался использовать команду set, но она полностью терпит неудачу, говоря для каждого свойства, которое я пробую, «недопустимое корневое свойство».


person scigor    schedule 31.05.2010    source источник


Ответы (2)


Существует отличная утилита под названием vol3d, созданная сотрудником mathworks. Джо Конти. Я думаю, что это точно отвечает вашим потребностям в визуализации — попробуйте.

Обновление (11/2012): файл, указанный выше, больше не существует. Однако есть новая версия здесь.

person Ofek Shilon    schedule 13.06.2010

Я не уверен, что понимаю вторую часть вопроса, но вот как вы визуализируете трехмерный объем, используя изоповерхности (я использую флюид- поток пример данных)

%# get a sample data with 0 for empty, 1 for solid
[~,~,~,v] = flow;
v = double( v<-3 );

%# visualize the volume
p = patch( isosurface(v,0) );                 %# create isosurface patch
isonormals(v, p)                              %# compute and set normals
set(p, 'FaceColor','r', 'EdgeColor','none')   %# set surface props
daspect([1 1 1])                              %# axes aspect ratio
view(3), axis vis3d tight, box on, grid on    %# set axes props
camproj perspective                           %# use perspective projection
camlight, lighting phong, alpha(.5)           %# enable light, set transparency

поток_объем

Чтобы узнать больше о визуализации объемов в MATLAB, обратитесь к этому превосходному серия видеоруководств размещена в блоге Дуга

person Amro    schedule 31.05.2010