How to loop all slice locations from a image volume as a single column vector?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, I am reading DICOM images from a folder and want to read all image slice locations such that I can have all slice locations as a column vector (I have 71 slices, so want to have 71 slice locations). Below is my attempt but could not able to figure out the way, can anyone help me?
%%
close all; clear; clc;
%%
% List all files in the folder
Files = dir('/etc/*');
for k = 1 : length(Files)
baseFileName = Files(k).name;
fullFileName = fullfile(Files(k).folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
end
%%
info = dicominfo(fullFileName);
slLoc = info.SliceLocation; % this will throw the slice location of the last Dicom image
% I want to write slLoc in a column vector such that all image slice locations are listed
0 commentaires
Réponse acceptée
Voss
le 28 Juin 2022
Modifié(e) : Voss
le 28 Juin 2022
Move the last two lines inside the loop and assign info.SliceLocation to the kth element of slLoc:
%%
close all; clear; clc;
%%
% List all files in the folder
Files = dir('/etc/*');
% slLoc = zeros(numel(Files),1); % pre-allocate slLoc
slLoc = cell(numel(Files),1); % pre-allocate slLoc
for k = 1:numel(Files)
baseFileName = Files(k).name;
fullFileName = fullfile(Files(k).folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
info = dicominfo(fullFileName);
% slLoc(k,1) = info.SliceLocation;
slLoc{k,1} = info.SliceLocation;
end
I don't know what class of data SliceLocation will be, so I've put it in a cell array there. Maybe it can be a numeric array or a string array.
8 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur DICOM Format 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!