dicom metadata I need some loop to read item_1,item_2,item_3 in a dicom file
Mostra commenti meno recenti
I have a file that contains a number of control points. Each one has several values that repeat and change from field to field:Here is an example
item_1
item_2
item_3
item_4
What kind of loop can I use to define these as an array like
for i=1,control points
Segment(i) = (item_1 then Item_2 then item _3) or really item_i resulting in 3 separate segments segment1 segment2 segment3.
The underscore is driving me insane.
Nothing I have tried seems to work.
1 Commento
robbie hakeem
il 1 Nov 2017
Risposte (1)
Walter Roberson
il 1 Nov 2017
0 voti
3 Commenti
Walter Roberson
il 1 Nov 2017
Do not store the items as individual variables: use dynamic field naming off of the struct.
Harlan Romsdahl
il 22 Ago 2023
Yes, it does returns a nested struct. The problem is there can be variable length sequences in the metadata. For example, a multi-frame object will have PerFrameFunctionalGroupsSequence with an item per frame. In my case, I have a 152 frame image and I want to iterate through the frame sequence. However, it is a structure with eement names: Item_1, Item_2, ... Item_152. How do I iterate through the 152 named elements of the structure? This is what MATLAB function"dicomCollection()" returns. \
Walter Roberson
il 22 Ago 2023
dinfo = dicominfo(FILENAME);
N = 152;
item_values = cell(N,1);
for K = 1 : N
varname = "item_" + K;
item_values{K} = dinfo.(varname);
end
Categorie
Scopri di più su DICOM Format in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!