How to combine all CT files to make a single array/matrix?

1 visualización (últimos 30 días)
blues
blues el 31 de En. de 2020
Respondida: Sean de Wolski el 31 de En. de 2020
%load and read CT images
% Preallocate the 512-by-512-by-1-by-263 image array
CT = zeros(512, 512, 263);
for p = 1:263
CTfilename = sprintf('CT-0003-%03d.IMA', p);
CT = dicomread(CTfilename);
%imshow(X,[])
end
% Now I want to make a 3D array of all series
3DArray = cat(3, CT{:}); % how to write a code here so that I can get a 3D array with X*Y*Z dims?
  2 comentarios
Geoff Hayes
Geoff Hayes el 31 de En. de 2020
blues - your comment says
% Preallocate the 512-by-512-by-1-by-263 image array
but your code to pre-allocate the array removes the 1 and creates a 512x512x263 matrix. Which is correct? Or should your code to save the images be
CT = zeros(512, 512, 263);
for p = 1:263
CTfilename = sprintf('CT-0003-%03d.IMA', p);
CT(:,:,p) = dicomread(CTfilename);
%imshow(X,[])
end
assuming that dicomread returns a 512x512 matrix?
blues
blues el 31 de En. de 2020
Thank you for pointing that out.
CT without CT(:,:,p) returned 512*512.
Now, with CT(:,:,p), I will not need concatenate (cat) thing, right?

Iniciar sesión para comentar.

Respuestas (1)

Sean de Wolski
Sean de Wolski el 31 de En. de 2020
Look at dicomreadVolume!
https://www.mathworks.com/help/images/ref/dicomreadvolume.html

Categorías

Más información sobre Images en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by