How to loop all slice locations from a image volume as a single column vector?
4 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Voss
on 28 Jun 2022
Edited: Voss
on 28 Jun 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 Comments
More Answers (0)
See Also
Categories
Find more on DICOM Format in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!