GDCM is yet another C++ library dedicated to reading/parsing and writing DICOM medical files. GDCM stands as a short for Grassroots DiCoM.
What GDCM IS
NEW: GDCM now support some DICOM Query/Retrieve functionalities (C-ECHO, C-STORE, C-FIND, C-MOVE).
- GDCM implements the dicom base standard part 5 that concentrates on image file format. Hence GDCM supports the following formats:
- ACR-NEMA version 1 and 2 (huffman compression is not supported),
- DICOM version 3.0, including various encodings of JPEG -lossless & lossy-, RLE, J2K -lossless & lossy-, deflated, JPEG-LS (lossless, near lossless) (MPEG2 compression is not supported),
- Papyrus V2 and V3 file headers should be readable,
- GDCM includes a lot of heuristics that allow reading all the 'exotic' files (see the GDCM:Supported page) we had to deal with. Any kind of 'exotic' DICOM file is welcome, to help us to improve our library.
- GDCM is distributed with a new BSD (BSD) license.
- GDCM is cross platform: it compiles with most c++ compiler such as gcc 3.x/4.x, icc , clang, Visual C++ (except VS6 & Borland)
- GDCM has a nightly Dashboard (the whole library is checked every night), see .
- GDCM targets both *NIX and Win32 system, including MacOSX system.
- GDCM comes with a VTK bridge class vtkGDCMImageReader/vtkGDCMImageWriter/vtkGDCMPolyDataReader to ease the burden of VTK users see   and ,
- GDCM comes with an ITK bridge class itk::GDCMImageIO to ease the burden of ITK users (ship with itk),
- Update: GDCM 2.x has been integrated into ITK v4
- GDCM also comes with gdcm.py/_gdcm its SWIG generated Python wrappers.
- GDCM is also available in Java and C#
What GDCM is NOT
WARNING: GDCM now include support for Query/Retrieve protocol (See gdcmscu).
GDCM is mostly focused on providing vizualization people a library that make DICOM feel like regular raster image file format (or vector graphics).
In particular GDCM is not aware of:
- the DICOM media storage formats (well ... it knows about the DICOMDIR -reading and writing- and its parts PATIENT, STUDY, SERIES, IMAGE)
- Print, Verification,
What GDCM vs ...
What GDCM still misses
See the Missing page
It would also be nice if we had a simple wxWidgets DICOM file editor.
The 'G' in GDCM used to refer to GNU since at the time of release 0.4 it was under the GNU LGPL license. However quickly around release 0.5 it switched to a more open license: BSD new-style. At that time, it was decided the 'G' should stand for something else then, to avoid confusion and then Grassroots was chosen.