Azzera filtri
Azzera filtri

cast() convert image to struct

1 visualizzazione (ultimi 30 giorni)
Hai Phan
Hai Phan il 23 Apr 2020
Risposto: Raunak Gupta il 28 Apr 2020
Hi,
I have nifti image with size (198 x 208 x 1 x 50), Bytes(8236800), Class(Single). And I wanted to change the class to Int16 using the function cast() here is my code :
V = niftiread('la_2ch.nii.gz'); % Read the nifti image
whos V % print size and data type of image
Z=cast(V,'int16'); % Convert the single-precision float data type to UInt16
% because this is one of the compatible format for the
% input of dicomwrite.
A=dicomwrite(Z,'la_2ch.dcm_Int16');% Writing to Dicom
whos A
And this the the result for A
Name Size Bytes Class Attributes
A 1x1 1508 struct
How do I use cast() and still get the size (198x208x1x50) and class (int16) so I can display 50 frames in DICOM instead of having one single image which I don't know its meaning.

Risposte (1)

Raunak Gupta
Raunak Gupta il 28 Apr 2020
Hi,
The A returned after using dicomwrite tell about the metadata that is used to generate the dicom file. As you can see by running
whos V
it returns a (198 x 208 x 1 x 50) int16 matrix which is exactly what is required. Also, by running the dicomwrite command you can see 'la_2ch.dcm_Int16' file created in current working folder. The image that is converted to int16 is Z and not A which is mere metadata file.

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