1GDCMIMG(1)                    DICOM Manipulation.                   GDCMIMG(1)
2
3
4

NAME

6       gdcmimg - Manipulate DICOM image file.
7
8       gdcmimg is a low level tool to allow de-/encapsulation from/to DICOM
9       image. This tool does not understand Transfer Syntax conversion. It
10       will encapsulate the raw data as-is. This has some impact in some
11       cases, see special warnings below.
12
13       It is important to note that gdcmimg can only encapsulate proper input
14       file, for instance JPG and or JP2 are accepted since an associated
15       DICOM Transfer Syntax can be found. However input such as TIFF and/or
16       PNG are not, since DICOM does not support those. See instead a tool
17       such as gdcm2vtk.
18

SYNOPSIS

20           gdcmimg [options] file-in file-out
21

DESCRIPTION

23       The gdcmimg command line tool can be used in two fashions:
24
25       •   1. Converting a recognized file format into its encapsulated DICOM
26           counterpart,
27
28       •   2. Anonymizing a rectangular portion of a DICOM file.
29
30

PARAMETERS

32           file-in   input filename (non-DICOM)
33
34           file-out  DICOM output filename
35

OPTIONS

37             -i --input     Input filename
38             -o --output    Output filename
39

SPECIFIC OPTIONS

41                --endian %s       Endianness (LSB/MSB).
42             -d --depth %d        Depth (Either 8/16/32 or BitsAllocated eg. 12 when known).
43                --sign %s         Pixel sign (0/1).
44                --spp  %d         Sample Per Pixel (1/3).
45             -s --size %d,%d      Size.
46             -C --sop-class-uid   SOP Class UID (name or value).
47             -T --study-uid       Study UID.
48             -S --series-uid      Series UID.
49                --template        Template DICOM file.
50                --root-uid        Root UID.
51

FILL OPTIONS

53             -R --region %d,%d    Region.
54             -F --fill %d         Fill with pixel value specified.
55

GENERAL OPTIONS

57             -h   --help
58                    print this help text and exit
59
60             -v   --version
61                    print version information and exit
62
63             -V   --verbose
64                    verbose mode (warning+error).
65
66             -W   --warning
67                    warning mode, print warning information
68
69             -E   --error
70                    error mode, print error information
71
72             -D   --debug
73                    debug mode, print debug information
74

ENVIRONMENT VARIABLE

76             GDCM_ROOT_UID Root UID
77

SUPPORTED FILE FORMAT (APPROPRIATE FILE EXTENSION)

79       gdcmimg will base it's conversion process based on the file extension.
80       Follows the list of recognized file extension. When no extension is
81       found, DICOM file is assumed.
82
83       input format
84
85             * RAW       (raw, rawl, gray, rgb)
86             * RLE       (rle)
87             * PNM       (pgm, pnm, ppm)
88             * JPEG-LS   (jls)
89             * JPEG 2000 (jp2, j2k, j2c, jpx, jpc)
90             * JPEG      (jpg, jpeg, ljpg, ljpeg)
91             * DICOM     ()
92
93       output format:
94
95             * PGM       (pgm, pnm, ppm)
96             * DICOM     ()
97
98       For RAW file format, you should take special care of the –endian
99       option. For the (old) JPEG file format, both the lossy and lossless
100       format are supported, user should pay attention to the –sign option.
101       For file format such as RLE or RAW, user is expected to fill in
102       information required to find the dimension and type of input data as
103       there is no other way to find this information. For all other file
104       format, the properties are derived from the file format itself.
105
106       PNM file are supposed to be big endian (important for depth > 8)
107

TYPICAL USAGE

109   Remove a rectangular part of the image
110       To fill the region [0,100]x[0,100] of a DICOM image simply do:
111
112           $ gdcmimg --fill 0 --region 0,100,0,100 -i input.dcm -o output_black.dcm
113
114       Warning: if the Pixel Data is compressed, the image is first
115       decompressed so that pixel can be set to 0, but it is not
116       re-compressed.
117
118   Convert RAW to DICOM
119       Recognized extension is .raw, .rawl, .gray or .rgb (case insensitive)
120
121           $ gdcmimg --size 512,512 --depth 16 -i input.raw -o output.dcm
122
123       the image will be a Secondary Capture.
124
125       When the input is 3 component, one need to specify explicitly the
126       Samples Per Pixel:
127
128           $ gdcmimg --size 512,512 --spp 3  input_rgb.raw output_rgb.dcm
129
130       When the filename contains .rgb as file extension output is
131       automatically recognized as RGB no need to specify –spp
132
133           $ gdcmimg --size 512,512 input.rgb output_rgb.dcm
134
135       You can use the dd cmd line to skip any header you would like to
136       discard, for instance, if you would like to skip the first 108 bytes,
137       simply do:
138
139           $ dd skip=108 bs=1 if=input.raw of=output.raw
140
141       .raw and .rawl extension are equivalent. You need to explicitly specify
142       the endianness manually:
143
144           $ gdcmimg --endian MSB --size 512,512 --depth 16 -i input.raw -o output.dcm
145
146       or
147
148           $ gdcmimg --endian LSB --size 512,512 --depth 16 -i input.raw -o output.dcm
149
150   Convert PGM/PNM/PPM to DICOM
151       Recognized extensions are .pgm, .pnm, .ppm (case insensitive)
152
153           $ gdcmimg -i input.pgm -o output.dcm
154
155       the image will be a Secondary Capture
156
157   Convert RLE to DICOM
158       Recognized extension is .rle (case insensitive)
159
160           $ gdcmimg --size 512,512 --depth 16 -i input.rle -o output.dcm
161
162       the image will be a Secondary Capture
163
164   Convert JPEG to DICOM
165       Recognized extensions are .jpg, .jpeg, .ljpg, .ljpeg (case insensitive)
166
167           $ gdcmimg -i input.ljpeg -o output.dcm
168
169       the image will be a Secondary Capture
170
171   Convert J2K to DICOM
172       Recognized extensions are .j2k, .jp2, .jpc, jpx, j2c (case insensitive)
173
174           $ gdcmimg -i input.j2k -o output.dcm
175
176       the image will be a Secondary Capture.
177
178       All Pixel information (Bits Stored/Allocated...) will be derived from
179       the image itself, and not from the command line options.
180
181   Specifying a SOP Class UID
182       Instead of the default Secondary Capture Image Storage, one may want to
183       specify, say VL Photographic Image Storage.
184
185           $ gdcmimg --sop-class-uid 1.2.840.10008.5.1.4.1.1.77.1.4 input.jpg output.dcm
186
187   Specifying a template DICOM file
188       Instead of the default Secondary Capture Image Storage, generated with
189       default values, one may want to specify a DICOM file that will serve as
190       template to fill in the DICOM attributes.
191
192           $ gdcmimg --sign 1 --template template.dcm input.jpg output.dcm
193
194       Pay attention that any values from template.dcm that are not consistent
195       with what is found inside the reference image will be overriden (eg.
196       image size). On particular case should be of concern: the Pixel
197       Representation for the JPEG family.
198

MULTIPLE FILES

200       gdcmimg handle nicely a set of files (for instance jpeg):
201
202           $ gdcmimg -C 1.2.840.10008.5.1.4.1.1.12.1 1.jpg 2.jpg 3.jpg 4.jpg output.dcm
203
204       It is important to specify an SOP Class that supports multi-frames
205       images otherwise gdcmimg will fail.
206

START OFFSET

208       In some case, one may want to create a 2D slice from an arbitrary
209       volume (e.g 3D). In which case –offset becomes handy:
210
211           $ gdcmimg --offset 4954104330 --size 1673,1673 Input3D_1673_1673_1775.raw slice_1770.dcm
212

WARNING

214       There are a couple of issues with gdcmimg implementation:
215
216       For RAW file, one should pay attention that when using –endian MSB the
217       Pixel Data will be encapsulated as is (not touched by gdcmimg).
218       Therefore the only possible transfer syntax available is Implicit VR
219       Big Endian DLX (G.E Private). GDCM does handle this private Transfer
220       Syntax. So if you need to convert this Transfer Syntax to another one
221       (and allow Pixel Data manipulation), you can use:
222
223           $ gdcmconv --raw --force input_big_endian_dlx.raw -o output_implicit_vr_little_endian.dcm
224
225       For JFIF file and JP2 file (with header) the header is copied into the
226       Pixel Data element which is illegal for JP2. Use gdcmconv to properly
227       re-encode a JP2/JFIF file into J2K/JPG.
228
229           $ gdcmimg input.jp2 output_jp2.dcm
230           $ gdcmconv --j2k --force output_jp2.dcm output_j2k.dcm
231
232       For RLE file, no check is done for crossing the row boundary. It is
233       recommended to use gdcmconv –rle to re-encode into a proper RLE file in
234       case of doubt.
235
236       Of course if the compression is not ok with your setup, you can always
237       de-encapsulated the DICOM file (typically JPEG) to a non-encapsulated
238       form, using gdcmconv:
239
240           $ gdcmconv --raw input_jpeg.dcm output_raw.dcm
241

SEE ALSO

243       gdcmdump(1), gdcm2vtk(1), gdcmraw(1), convert(1), dd(1)
244

AUTHOR

246       Mathieu Malaterre
247           Main developer
248
250       Copyright © 2006, 2011 Mathieu Malaterre
251
252
253
254GDCM 3.0.8                        01/26/2021                        GDCMIMG(1)
Impressum