MATLAB Answers


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);
error in X(:,:,1,i) = dicomread(filename);(Subscripted assignment dimension mismatch.)


Sign in to comment.


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


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

Sign in to comment.