У меня есть 170 фрагментов изображения 512 x 512 в двоичной форме (ручная сегментация из набора данных медицинских изображений). Я хотел бы построить трехмерную визуализацию/модель объекта, уложив эти 170 фрагментов изображения вместе.Как построить трехмерную модель с кодом Matlab
Я использовал функцию конкатенации, чтобы сложить все 170 изображений в одну матрицу, D. Мои кодирования, как показано ниже:
C = cell(1, 170);
for k = 1:170;
% Create a mat filename, and load it into a structure called matData.
matFileName = sprintf('AAAmanual%d.mat', k);
if exist(matFileName, 'file')
load(matFileName);
C{k} = BW;
else
fprintf('File %s does not exist.\n', matFileName);
end
end
D = cat(3, C{:});
Я не уверен, является ли это правильный способ сделать это. Поэтому мне нужны ваши советы и помощь отсюда. Как написать код Matlab или какую функцию использовать для визуализации модели?
я получил что-то построены с использованием сглаженной поверхности, но получил ошибку упоминая из памяти. Кодирование для сглаженной поверхности, как следующие:
patch(isocaps(D,.5),...
'FaceColor','interp','EdgeColor','none');
p1 = patch(isosurface(D,.5),...
'FaceColor','blue','EdgeColor','none');
isonormals(D,p1)
view(3);
axis vis3d tight
camlight left;
colormap jet
lighting gouraud
Результат от smooth3 участка:
Как я должен преодолеть отказ от проблем с памятью? или есть лучший способ построить это?
это расстояние пикселя и расстояние ломтика то же самое? В большинстве приложений расстояние между срезами выше расстояния между пикселями в пределах одного среза. – Daniel
Являются ли эти расстояния важными? как используется расстояние при построении модели? можете ли вы дать мне знать, как построить, если расстояние между срезами отличается от расстояния между пикселями внутри одного фрагмента? спасибо alot .. – Onered
Если расстояние между срезами, например, вдвое превышает расстояние между пикселями, но вы не отражаете это в своем коде, круг будет отображаться как эллипс. – Daniel