Effacer les filtres
Effacer les filtres

making volume from multiple slices

2 vues (au cours des 30 derniers jours)
talayeh ghodsi
talayeh ghodsi le 12 Oct 2019
hi everyone. i have 429 slices of ct and i want to make a volume(called pic_3D in the code) from them. each image is 625*696. i have written the code bellow, but it still has the error wich is attached. and also i dont know why the im(number of images in the folder) in the workspace is 269, it should be 429
surf_read_dir='C:\Users\asus\Desktop\more crop\';
files=dir('C:\Users\asus\Desktop\more crop\*.jpg');
for im=1:size(files)
fdir = strcat(surf_read_dir , files(im).name);
slice_im = load(fdir);
pic = imread(fdir);
for i=1:600
frt_data(im,:,i)=pic(i,:,1);
end
pic_3D(:,:,im) = pic(:,:,1);
end

Réponse acceptée

KALYAN ACHARJYA
KALYAN ACHARJYA le 12 Oct 2019
Modifié(e) : KALYAN ACHARJYA le 12 Oct 2019
result=cat(Depth_size,slice1,slice2,slice3....);
Depth_size must be same as number of slices to be add
Say 3 slices then
result_3d=cat(3,slice1,slice2,slice3);
Look at multidimentional array, you may get more idea.
  2 commentaires
talayeh ghodsi
talayeh ghodsi le 13 Oct 2019
thanks for your answer, but could you tell how can i put all 429 slices in your code instead of 'slice'?
result=cat(429,slice1,slice2,slice3....);
KALYAN ACHARJYA
KALYAN ACHARJYA le 15 Oct 2019
Modifié(e) : KALYAN ACHARJYA le 15 Oct 2019
%Read all slices and save in structure array , like array_data={1,429}
Next
for i=1:length(array_data);
result(:,:,i)=cat(i,array_data{i});
%.................^ here we have to think about
end
%Please note, I did not tried it, may it works with minor modifications
Or
see reshape function

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by