Hi all, i have 10 images start with I40.dcm to I130.dcm.
i try thid command, but failed. anyone can help me?
clear all
clc
P = zeros(256, 256, 10);
for K = 1 : 10
petname = sprintf('I%40d.dcm', K);
P(:,:,K) = dicomread(petname);
end
imshow3D(P)

 Akzeptierte Antwort

Rik
Rik am 4 Jan. 2021

0 Stimmen

You can either list the file names, or properly create the file name:
%clear all
%clc
%^^^^ These are not needed, and especially clear all is a bad idea. Use clear or clearvars instead.
P = zeros(256, 256, 10);
for K = 1 : 10
K_file=30+10*K;
petname = sprintf('I%d.dcm', K_file);
P(:,:,K) = dicomread(petname);
end
imshow3D(P)

4 Kommentare

but have error
Unable to perform assignment because the size of the left side is 256-by-103 and the size of the
right side is 103-by-103
.
Rik
Rik am 4 Jan. 2021
That means your slices are not the same size. You will have to pad your image.
hir Sir RIK,
If i want to resize my image from to 103 to 128, is it correct my coding?
clear all
clc
P = zeros(103, 103, 60);
for K = 1 : 60
K_file=30+10*K;
petname = sprintf('I%d.dcm', K_file);
P(:,:,K) = dicomread(petname);
P(:,:,K) = imresize(P(:,:,K),[128 128])
end
imshow3D(P)
but i got error
Rik
Rik am 5 Jan. 2021
You can first read the dicom image to a temporary variable. Then you can resize it and store it in P.
But are you sure you want to resize the slices? In general you don't want to do that while reading a scan.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Version

R2020b

Gefragt:

am 4 Jan. 2021

Kommentiert:

Rik
am 5 Jan. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by