Я хочу прочитать 100 различных изображений МРТ в MATLAB, используя этот код:
% Preallocate the 256-by-256-by-1-by-20 image array.
X = repmat(int16(0), [256 256 1 20]);
% Read the series of images.
for p=1:20
filename = sprintf('brain_%03d.dcm', p);
X(:,:,1,p) = dicomread(filename);
end
% Display the image stack.
montage(X,[])
но появляется эта ошибка:
Несоответствие размера назначения в подписке.
Что не так с этим кодом?
Решение проблемы
% Please Include Your MATLab Error:)
У вас есть несоответствие размера назначения с индексом, что означает, что то, что загружается из sprintf(), не имеет размера (256x256)
Кроме того, в качестве предупреждения
X(:,:,1,p)
Это использование неправильных размеров...
Допустим, вы хотели сохранить изображение из 4 строк и 4 столбцов. С интенсивностью от 0 до 255. Тогда у вас есть в общей сложности 16 элементов, каждый из которых имеет уникальное значение интенсивности.
Всякий раз, когда вы говорите
(:,:,1)- вы говорите, N измерение, N измерение, 1-е измерение.
Если бы у меня был 4х4 и я хотел бы его сохранить, я бы сказал
([1:4],[1:4],1)- и я бы его сохранил.
Используя X(:,:,1,p)- вы создаете набор из набора изображений.
На самом деле вам нужен просто набор изображений.
Надеюсь это поможет.
Кроме того, это было похоже на домашнее задание, поэтому я не включил прямое решение, пытаясь объяснить вашу ошибку. ~ Лучшее
Комментариев нет:
Отправить комментарий