MATLAB Answers

hi plz help me in this probleme i wont to créate a montage of dicom image with 26 images

3 views (last 30 days)
s = dicomread('SE000005\IM00000.dcm'); [r c] = size(s);
X = repmat(int16(0), [256 256 0 25])
for i=1:26
filename = sprintf('SE000005\\IM0000%d.dcm', i);
X(:,:,1,i) = dicomread(filename);
end
montage(X,'displayrange',[]);
but
error in X(:,:,1,i) = dicomread(filename);(Subscripted assignment dimension mismatch.)
)

  0 Comments

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 10 Apr 2016
Do you have the right dimensions? Looks like it must be a 4-D array. From the help:
montage(I) displays all the frames of a multiframe image array I in a single image object. I can be a sequence of binary, grayscale, or truecolor images. A binary or grayscale image sequence must be an M-by-N-by-1-by-K array. A truecolor image sequence must be an M-by-N-by-3-by-K array.
What does this say:
whos X

  3 Comments

Image Analyst
Image Analyst on 10 Apr 2016
Well, there you go -- X is empty. You need to step through with the debugger to figure out why you're not reading in the files. Like, try using exist(). And try using the folder, even if it's pwd, and fullfile, like I did below:
filename = fullfile(pwd, sprintf('SE000005\\IM0000%d.dcm', i))
if ~exist(filename, 'file')
message = sprintf('Error: file does not exist:\n%s', filename);
uiwait(warndlg(message));
continue;
end

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Tags