MATLAB Answers

0

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

Asked by mima zebouchi on 10 Apr 2016
Latest activity Edited by mima zebouchi on 10 Apr 2016
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.

Tags

1 Answer

Answer by Image Analyst
on 10 Apr 2016
 Accepted Answer

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

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
yes thanks it works i change X = repmat(int16(0), [256 256 r c]

Sign in to comment.