[Insight-developers] GDCM 1.2 update status.
Mathieu Malaterre
mathieu.malaterre at kitware.com
Fri Feb 3 11:51:18 EST 2006
Hello happy gdcm users,
So I believe I am done with the update of gdcm 1.0 to gdcm 1.2. Let's
start with the bad news:
API Change(*)
- By default I decided to turn legacy silent off. If you edit your
CMakeCache.txt you'll find a variable: GDCM_LEGACY_SILENT:OFF. What that
mean is (if you use a decent compiler) that every time you use a
deprecated method the compiler will yell at you. If you do not want
that, then you have to manually change this variable to ON, to allow
compiler to go on without warnings.
- If you decide to turn GDCM_LEGACY_REMOVE:ON, what this means is that
the legacy code will simply be removed from the library. Therefore you
won't get warning, but compiler errors ! Turn to ON only if you want to
make sure you are using the latest and greatest of gdcm :)
Now for the good news:
User have finally a more flexible way to restrict Series.
1. Using AddRestriction. In the past using SetUseSeriesDetails(true)
would set by default the following DICOM tags to be inspected in order
to find out DICOM file potentially out of a particular Series. Now you
can explicitly specify which tag to use. What this also means, to ensure
full backward compatibility is that in order to use AddRestriction the
old default values are taken into account, and there is currently no way
to remove those default values.
See DicomSeriesReadImageWrite2 for an example of use
2. Using operators. Let say you have a series of 1000 slices and you are
only interested in let say slice 500-600. Since the filenames does not
always explicitly says which slice they represent, you can tell the
GDCMSeriesFileNames to look for those slices for you.
See itkGDCMSeriesReadImageWrite for an example of use.
3. Full support of JPEG2000 DICOM file ! Thanks to the OpenJPEG team we
have a working J2K implementation that compress/decompress even 16bits
images(**).
4. Load time is now speared from construct time. This mean you can now
specify what skip operation you want to do (skip shadow group, skip
sequence...)
5. More support of private dictionaries. Look into gdcm/Dicts to have a
list of shadows DICOM tag. You can either add them at compile time, or
at run time.
6. More DICOMDIR support.
Ps: I tried my best to keep full backward compatibility, if you think I
missed something, please let me know ASAP.
Mathieu
(*)
http://insightsoftwareconsortium.org/wiki/index.php/Administration-BackwardCompatibility#Current_Draft_of_the_ISC_Policy_on_Backward_Compatibility
(**) gdcm for a while was using JasPer another open source J2K
implementation but it suffers from a serious decompression bug for
16bits lossless images.
More information about the Insight-developers
mailing list