Read Metadata from DICOM Files
DICOM files contain metadata that provide information about the image data, such as the
size, dimensions, bit depth, modality used to create the data, and equipment settings used to
capture the image. To read metadata from a DICOM file, use the dicominfo
function. dicominfo
returns the information in a
MATLAB® structure where every field contains a specific piece of DICOM metadata. You can
use the metadata structure returned by dicominfo
to specify the DICOM file
you want to read using dicomread
— see Read Image Data from DICOM Files. If you just want to view
the metadata in a DICOM file, for debugging purposes, you can use the dicomdisp
function.
The following example reads the metadata from a sample DICOM file that is included with the toolbox.
info = dicominfo("CT-MONO2-16-ankle.dcm")
info = Filename: [1x89 char] FileModDate: '18-Dec-2000 11:06:43' FileSize: 525436 Format: 'DICOM' FormatVersion: 3 Width: 512 Height: 512 BitDepth: 16 ColorType: 'grayscale' FileMetaInformationGroupLength: 192 FileMetaInformationVersion: [2x1 uint8] MediaStorageSOPClassUID: '1.2.840.10008.5.1.4.1.1.7' MediaStorageSOPInstanceUID: [1x50 char] TransferSyntaxUID: '1.2.840.10008.1.2' ImplementationClassUID: '1.2.840.113619.6.5' . . .
Private DICOM Metadata
The DICOM specification defines many of these metadata fields, but files can contain additional fields, called private metadata. This private metadata is typically defined by equipment vendors to provide additional information about the data they provide.
When dicominfo
encounters a private metadata field in a DICOM file,
it returns the metadata creating a generic name for the field based on the group and element
tags of the metadata. For example, if the file contained private metadata at group 0009 and
element 0006, dicominfo
creates the
name:Private_0009_0006
. dicominfo
attempts to
interpret the private metadata, if it can. For example, if the metadata contains characters,
dicominfo
processes the data. If it can't interpret the data,
dicominfo
returns a sequence of bytes.
If you need to process a DICOM file created by a manufacturer that uses private metadata, and you prefer to view the correct name of the field as well as the data, you can create your own copy of the DICOM data dictionary and update it to include definitions of the private metadata. You will need information about the private metadata that vendors typically provide in DICOM compliance statements. For more information about updating DICOM dictionary, see Create Your Own Copy of DICOM Dictionary.
Create Your Own Copy of DICOM Dictionary
MathWorks® uses a DICOM dictionary that contains definitions of thousands of standard DICOM metadata fields. If your DICOM file contains metadata that is not defined this dictionary, you can update the dictionary, creating your own copy that it includes these private metadata fields.
To create your own dictionary, perform this procedure:
Make a copy of the text version of the DICOM dictionary that is included with MATLAB. This file, called
dicom-dict.txt
is located in
ormatlabroot
/toolbox/images/medformats
depending on which version of the Image Processing Toolbox software you are working with. Do not attempt to edit the MAT-file version of the dictionary,matlabroot
/toolbox/images/iptformatsdicom-dict.mat
.Edit your copy of the DICOM dictionary, adding entries for the metadata. Insert the new metadata field using the group and element tag, type, and other information. Follow the format of the other entries in the file. The creator of the metadata (such as an equipment vendor) must provide you with the information.
Save your copy of the dictionary.
Set MATLAB to use your copy of the DICOM dictionary,
dicomdict
function.
See Also
Apps
Functions
Objects
dicomFile
(Medical Imaging Toolbox)