NAME
gdcmraw - .TH "gdcmraw" 1 "Sun Aug 8 2010" "Version 2.0.15" "GDCM"
NAME
gdcmraw - .SH "SYNOPSIS"
gdcmraw [options] file-in file-out
DESCRIPTION
The gdcmraw tool is mostly used for development purpose. It is used to
extract a specific binary field from a DICOM DataSet.
PARAMETERS
file-in DICOM input filename
file-out output filename
OPTIONS
PARAMETERS
-i --input Input filename
-o --output Output filename
-t --tag Specify tag to extract value from.
OPTIONS
-S --split-frags Split fragments into multiple files.
-p --pattern Specify trailing file pattern (see split-frags).
-P --pixel-data Pixel Data trailing 0.
general options
-h --help
print this help text and exit
-v --version
print version information and exit
-V --verbose
verbose mode (warning+error).
-W --warning
warning mode, print warning information
-E --error
error mode, print error information
-D --debug
debug mode, print debug information
Typical usage
Copy Attribute Value to file
This will extract the value at Tag (0025,101b):
$ gdcmraw -i GE_MR_0025xx1bProtocolDataBlock.dcm -t 25,101b -o pdb.raw
Extract Pixel Data
If you do not specify any tag, the Pixel Data element is the default
one. So for instance to grab the Pixel Data from an image:
$ gdcmraw -i test.acr -o test.raw
You can then for example compute the md5sum of this pixel data (very
useful):
$ md5sum test.raw
f845c8f283d39a0204c325654493ba53 test.raw
Encapsulated Syntax
When the Pixel Data is encapsulated, multiple fragments can be used to
store a single slice image:
$ gdcmdump D_CLUNIE_CT1_J2KR.dcm
...
(7fe0,0010) OB # u/l,1 Pixel Data
(fffe,e000) ?? [] # 0,1 Item
(fffe,e000) ?? ff\4f\ff\51\00\29\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00 # 65536,1 Item
(fffe,e000) ?? 2c\b7\ee\68\de\e3\93\2d\b3\b8\ba\90\7b\42\3e\f8\42\16\64\88\46\30\37\d4\50\95\9b\b6\a5\c7\38\9b # 65536,1 Item
(fffe,e000) ?? 48\3c\03\e8\c4\3f\44\e1\8a\5c\73\3b\02\0a\ad\a5\8f\e4\0c\81\76\a2\d7\1b\7f\b7\cd\bc\30\c6\6a\6a # 43308,1 Item
(fffe,e0dd) 0
In order to create a J2K image out of it, we need to extract each
fragments and concatenate them:
$ gdcmraw -i D_CLUNIE_CT1_J2KR.dcm -o D_CLUNIE_CT1_J2KR.j2k
This is a valid J2K file, using the Kakadu software package:
$ kdu_expand -i D_CLUNIE_CT1_J2KR.j2k -o D_CLUNIE_CT1_J2KR.tiff -record D_CLUNIE_CT1_J2KR.txt
$ cat D_CLUNIE_CT1_J2KR.txt
Sprofile=PROFILE2
Scap=no
Sextensions=0
Ssize={512,512}
Sorigin={0,0}
Stiles={512,512}
Stile_origin={0,0}
Scomponents=1
Ssigned=yes
Sprecision=16
Ssampling={1,1}
Sdims={512,512}
Cycc=no
Cmct=0
Clayers=1
Cuse_sop=no
Cuse_eph=no
Corder=LRCP
Calign_blk_last={no,no}
Clevels=5
Cads=0
Cdfs=0
Cdecomp=B(-:-:-)
Creversible=yes
Ckernels=W5X3
Catk=0
Cuse_precincts=no
Cblk={64,64}
Cmodes=0
Qguard=1
Qabs_ranges=18,19,19,20,19,19,20,19,19,20,19,19,20,19,19,20
>> New attributes for tile 0:
Extract fragments as single file
Sometimes each fragments is in fact a single slice, so we would not
need to concatenate them:
$ gdcmdump 00191113.dcm
...
(7fe0,0010) OB # u/l,1 Pixel Data
(fffe,e000) ?? 00\00\00\00\6b\38\01\00\10\77\02\00\37\b6\03\00\a7\f4\04\00 # 20,1 Item
(fffe,e000) ?? ff\d8\ff\c3\00\0b\08\02\00\02\00\01\00\11\00\ff\c4\00\1b\00\01\01\01\01\01\01\01\01\00\00\00\00 # 79970,1 Item
(fffe,e000) ?? ff\d8\ff\c3\00\0b\08\02\00\02\00\01\00\11\00\ff\c4\00\1b\00\01\01\01\01\01\01\01\01\00\00\00\00 # 81564,1 Item
(fffe,e000) ?? ff\d8\ff\c3\00\0b\08\02\00\02\00\01\00\11\00\ff\c4\00\1b\00\01\01\01\01\01\01\01\01\00\00\00\00 # 81694,1 Item
(fffe,e000) ?? ff\d8\ff\c3\00\0b\08\02\00\02\00\01\00\11\00\ff\c4\00\1b\00\01\01\01\01\01\01\01\01\00\00\00\00 # 81511 (81512),1 Item
(fffe,e0dd) 0
Let's try to extract those 4 individual Lossless jpeg individually:
$ gdcmraw --split-frags -i 00191113.dcm -o jpeg --pattern %02d.ljpeg
This will output 4 files:
-rw-r--r-- 1 mathieu mathieu 81512 2008-08-08 22:10 jpeg03.ljpeg
-rw-r--r-- 1 mathieu mathieu 81694 2008-08-08 22:10 jpeg02.ljpeg
-rw-r--r-- 1 mathieu mathieu 81564 2008-08-08 22:10 jpeg01.ljpeg
-rw-r--r-- 1 mathieu mathieu 79970 2008-08-08 22:10 jpeg00.ljpeg
Footnote about JPEG files
It is a common misunderstanding to interchange 'JPEG 8bits lossy' with
simply JPEG file. The JPEG specification is much broader than simply
the common lossy 8bits file (as found on internet).
You can have
o JPEG Lossy 8bits
o JPEG Lossy 12bits
o JPEG Lossless 2-16bits
Those are what is defined in ITU-T T.81, ISO/IEC IS 10918-1.
SEE ALSO
gdcmdump(1), gdcmraw(1)
COPYRIGHT
Copyright (c) 2006-2010 Mathieu Malaterre