dicom metadata I need some loop to read item_1,item_2,item_3 in a dicom file

3 visualizzazioni (ultimi 30 giorni)
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
robbie hakeem il 1 Nov 2017
I understand that but these values are already in a Dicom file I am reading . So how do I read them .
Item-1 2 etc and those repeat very often .

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 1 Nov 2017
  3 Commenti
Harlan Romsdahl
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
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

Accedi per commentare.

Categorie

Scopri di più su DICOM Format in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by