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

2 visualizaciones (últimos 30 días)
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 comentario
robbie hakeem
robbie hakeem el 1 de Nov. de 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 .

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 1 de Nov. de 2017
  3 comentarios
Harlan Romsdahl
Harlan Romsdahl el 22 de Ag. de 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 el 22 de Ag. de 2023
dinfo = dicominfo(FILENAME);
N = 152;
item_values = cell(N,1);
for K = 1 : N
varname = "item_" + K;
item_values{K} = dinfo.(varname);
end

Iniciar sesión para comentar.

Categorías

Más información sobre DICOM Format en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by