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

1 回表示 (過去 30 日間)
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.)
)

採用された回答

Image Analyst
Image Analyst 2016 年 4 月 10 日
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 件のコメント
Image Analyst
Image Analyst 2016 年 4 月 10 日
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
mima  zebouchi
mima zebouchi 2016 年 4 月 10 日
編集済み: mima zebouchi 2016 年 4 月 10 日
yes thanks it works i change X = repmat(int16(0), [256 256 r c]

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMedical Physics についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by