Generate DICOM file sequence from Matlab

7 visualizaciones (últimos 30 días)
Massimo
Massimo el 11 de Sept. de 2019
Respondida: raym el 26 de Sept. de 2023
I am trying to generate a sequence of images as DICOM file from matlab, to be used later by other DICOM viewers.
The basic commands are
for j=1:20
image=uint8(2^8*rand(512,512));
dicomwrite(image, ['d:\test\c',num2str(j),'.dcm']);
end
I cannot import metadata from other DICOM files, to be used as a model.
Which parameters of metadata I should manually edit in order to have a sequence that could be seen as a 3D and/or slices by other DICOM viewer?
Because with DICOM viewer I sees the files as as a sequence of images, but I cannot make slices or 3d visualization
  3 comentarios
Massimo
Massimo el 11 de Sept. de 2019
Editada: Massimo el 12 de Sept. de 2019
Thank you for the answer.
The DICOM viewer is RadiAnt Dicom Viewer.
The images are exactly the ones in my example, and I want to see the slices in the three directions.
The updated commands would be
uid1 = dicomuid;
uid2 = dicomuid;
for k=1:20
image=uint8(2^8*rand(512,512));
info.InstanceNumber=k;
info.SeriesInstanceUID = uid1;
info.StudyInstanceUID=uid2;
dicomwrite(image, ['d:\test\c',num2str(k),'.dcm']);
end
I can see the images in RadiAnt as a sequence, but the slice (MPR Multi Planar Reconstruction) is not activated. I believe that I should add manually some parameters in the metadata . Which ones?
Rik
Rik el 11 de Sept. de 2019
I don't have enough experience with radiant to be able to tell you. I do notice that you probably have a typo in your code:
info.InstanceNumber=i;%j is the loop iterator
I would advise you to avoid i and j as loop iterators, because they could potentially clash with the imaginary units 1i and 1j.

Iniciar sesión para comentar.

Respuestas (1)

raym
raym el 26 de Sept. de 2023
Yes this SeriesInstanceUID and StudyInstanceUID solved my problem.
I think to get 3D volume you may need other parameters like voxel 3D info.
info.SeriesNumber=SN;
info.AcquisitionNumber=SN;
info.StudyDate=today;
info.StudyID=num2str(SN);
info.PatientID=num2str(SN);
info.PatientPosition='HFS';
info.AccessionNumber=num2str(SN);
info.StudyDescription=['StudyMAT' num2str(SN)];
info.SeriesDescription=['StudyMAT' num2str(SN)];
info.Manufacturer='Matlab Convert';
info.SliceThickness=volscale(3);
info.PixelSpacing=volscale(1:2);
info.SliceLocation=0;
info.SeriesInstanceUID = uid1;
info.StudyInstanceUID = uid2;
info.InstanceNumber = slicenum;
info.SliceLocation = info.SliceLocation+volscale(3);

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by