1dcmj2pnm(1)                       OFFIS DCMTK                      dcmj2pnm(1)
2
3
4

NAME

6       dcmj2pnm - Convert DICOM images to PGM/PPM, PNG, TIFF, JPEG or BMP
7
8

SYNOPSIS

10       dcmj2pnm [options] dcmfile-in [bitmap-out]
11

DESCRIPTION

13       The  dcmj2pnm  utility  reads  a  DICOM  image, converts the pixel data
14       according to the selected image processing options and writes  back  an
15       image in the well-known PGM/PPM (portable gray map / portable pix map),
16       PNG, TIFF, JPEG (Joint  Photographic  Experts  Group)  or  Windows  BMP
17       format.  This  utility  supports  uncompressed  as well as JPEG and RLE
18       compressed DICOM images.
19

PARAMETERS

21       dcmfile-in  DICOM input filename to be converted
22
23       bitmap-out  output filename to be written (default: stdout)
24

OPTIONS

26   general options
27         -h    --help
28                 print this help text and exit
29
30               --version
31                 print version information and exit
32
33               --arguments
34                 print expanded command line arguments
35
36         -q    --quiet
37                 quiet mode, print no warnings and errors
38
39         -v    --verbose
40                 verbose mode, print processing details
41
42         -d    --debug
43                 debug mode, print debug information
44
45         -ll   --log-level  [l]evel: string constant
46                 (fatal, error, warn, info, debug, trace)
47                 use level l for the logger
48
49         -lc   --log-config  [f]ilename: string
50                 use config file f for the logger
51
52   input options
53       input file format:
54
55         +f    --read-file
56                 read file format or data set (default)
57
58         +fo   --read-file-only
59                 read file format only
60
61         -f    --read-dataset
62                 read data set without file meta information
63
64       input transfer syntax:
65
66         -t=   --read-xfer-auto
67                 use TS recognition (default)
68
69         -td   --read-xfer-detect
70                 ignore TS specified in the file meta header
71
72         -te   --read-xfer-little
73                 read with explicit VR little endian TS
74
75         -tb   --read-xfer-big
76                 read with explicit VR big endian TS
77
78         -ti   --read-xfer-implicit
79                 read with implicit VR little endian TS
80
81   image processing options
82       frame selection:
83
84         +F    --frame  [n]umber: integer
85                 select specified frame (default: 1)
86
87         +Fr   --frame-range  [n]umber [c]ount: integer
88                 select c frames beginning with frame n
89
90         +Fa   --all-frames
91                 select all frames
92
93       rotation:
94
95         +Rl   --rotate-left
96                 rotate image left (-90 degrees)
97
98         +Rr   --rotate-right
99                 rotate image right (+90 degrees)
100
101         +Rtd  --rotate-top-down
102                 rotate image top-down (180 degrees)
103
104       flipping:
105
106         +Lh   --flip-horizontally
107                 flip image horizontally
108
109         +Lv   --flip-vertically
110                 flip image vertically
111
112         +Lhv  --flip-both-axes
113                 flip image horizontally and vertically
114
115       scaling:
116
117         +a    --recognize-aspect
118                 recognize pixel aspect ratio when scaling (default)
119
120         -a    --ignore-aspect
121                 ignore pixel aspect ratio when scaling
122
123         +i    --interpolate  [n]umber of algorithm: integer
124                 use interpolation when scaling (1..4, default: 1)
125
126         -i    --no-interpolation
127                 no interpolation when scaling
128
129         -S    --no-scaling
130                 no scaling, ignore pixel aspect ratio (default)
131
132         +Sxf  --scale-x-factor  [f]actor: float
133                 scale x axis by factor, auto-compute y axis
134
135         +Syf  --scale-y-factor  [f]actor: float
136                 scale y axis by factor, auto-compute x axis
137
138         +Sxv  --scale-x-size  [n]umber: integer
139                 scale x axis to n pixels, auto-compute y axis
140
141         +Syv  --scale-y-size  [n]umber: integer
142                 scale y axis to n pixels, auto-compute x axis
143
144       color space conversion (JPEG compressed images only):
145
146         +cp   --conv-photometric
147                 convert if YCbCr photometric interpretation (default)
148
149         +cl   --conv-lossy
150                 convert YCbCr to RGB if lossy JPEG
151
152         +cg   --conv-guess
153                 convert to RGB if YCbCr is guessed by library
154
155         +cgl  --conv-guess-lossy
156                 convert to RGB if lossy JPEG and YCbCr is
157                 guessed by the underlying JPEG library
158
159         +ca   --conv-always
160                 always convert YCbCr to RGB
161
162         +cn   --conv-never
163                 never convert color space
164
165       workaround options for incorrect encodings (JPEG compressed images only):
166
167         +w6   --workaround-pred6
168                 enable workaround for JPEG lossless images
169                 with overflow in predictor 6
170
171         # DICOM images with 16 bits/pixel have been observed "in the wild"
172         # that are compressed with lossless JPEG and need special handling
173         # because the encoder produced an 16-bit integer overflow in predictor
174         # 6, which needs to be compensated (reproduced) during decompression.
175         # This flag enables a correct decompression of such faulty images, but
176         # at the same time will cause an incorrect decompression of correctly
177         # compressed images. Use with care.
178
179         +wi   --workaround-incpl
180                 enable workaround for incomplete JPEG data
181
182         # This option causes dcmj2pnm to ignore incomplete JPEG data
183         # at the end of a compressed fragment and to start decompressing
184         # the next frame from the next fragment (if any). This permits
185         # images with incomplete JPEG data to be decoded.
186
187         +wc   --workaround-cornell
188                 enable workaround for 16-bit JPEG lossless
189                 Cornell images with Huffman table overflow
190
191         # One of the first open-source implementations of lossless JPEG
192         # compression, the "Cornell" library, has a well-known bug that leads
193         # to invalid values in the Huffmann table when images with 16 bit/sample
194         # are compressed. This flag enables a workaround that permits such
195         # images to be decoded correctly.
196
197       modality LUT transformation:
198
199         -M    --no-modality
200                 ignore stored modality LUT transformation
201
202         +M    --use-modality
203                 use modality LUT transformation (default)
204
205       VOI LUT transformation:
206
207         -W    --no-windowing
208                 no VOI windowing (default)
209
210         +Wi   --use-window  [n]umber: integer
211                 use the n-th VOI window from image file
212
213         +Wl   --use-voi-lut  [n]umber: integer
214                 use the n-th VOI look up table from image file
215
216         +Wm   --min-max-window
217                 compute VOI window using min-max algorithm
218
219         +Wn   --min-max-window-n
220                 compute VOI window using min-max algorithm,
221                 ignoring extreme values
222
223         +Wr   --roi-min-max-window  [l]eft [t]op [w]idth [h]eight: integer
224                 compute ROI window using min-max algorithm,
225                 region of interest is specified by l,t,w,h
226
227         +Wh   --histogram-window  [n]umber: integer
228                 compute VOI window using Histogram algorithm,
229                 ignoring n percent
230
231         +Ww   --set-window  [c]enter [w]idth: float
232                 compute VOI window using center c and width w
233
234         +Wfl  --linear-function
235                 set VOI LUT function to LINEAR
236
237         +Wfs  --sigmoid-function
238                 set VOI LUT function to SIGMOID
239
240       presentation LUT transformation:
241
242         +Pid  --identity-shape
243                 set presentation LUT shape to IDENTITY
244
245         +Piv  --inverse-shape
246                 set presentation LUT shape to INVERSE
247
248         +Pod  --lin-od-shape
249                 set presentation LUT shape to LIN OD
250
251       overlay:
252
253         -O    --no-overlays
254                 do not display overlays
255
256         +O    --display-overlay  [n]umber: integer
257                 display overlay n (0..16, 0=all, default: +O 0)
258
259         +Omr  --ovl-replace
260                 use overlay mode "Replace"
261                 (default for Graphic overlays)
262
263         +Omt  --ovl-threshold
264                 use overlay mode "Threshold Replace"
265
266         +Omc  --ovl-complement
267                 use overlay mode "Complement"
268
269         +Omv  --ovl-invert
270                 use overlay mode "Invert Bitmap"
271
272         +Omi  --ovl-roi
273                 use overlay mode "Region of Interest"
274                 (default for ROI overlays)
275
276         +Osf  --set-foreground  [d]ensity: float
277                 set overlay foreground density (0..1, default: 1)
278
279         +Ost  --set-threshold  [d]ensity: float
280                 set overlay threshold density (0..1, default: 0.5)
281
282       display LUT transformation:
283
284         +Dm   --monitor-file  [f]ilename: string
285                 calibrate output according to monitor characteristics
286                 defined in f
287
288         +Dp   --printer-file  [f]ilename: string
289                 calibrate output according to printer characteristics
290                 defined in f
291
292         +Da   --ambient-light  [a]mbient light: float
293                 ambient light value (cd/m^2, default: file f)
294
295         +Di   --illumination  [i]llumination: float
296                 illumination value (cd/m^2, default: file f)
297
298         +Dn   --min-density  [m]inimum optical density: float
299                 Dmin value (default: off, only with +Dp)
300
301         +Dx   --max-density  [m]aximum optical density: float
302                 Dmax value (default: off, only with +Dp)
303
304         +Dg   --gsd-function
305                 use GSDF for calibration (default for +Dm/+Dp)
306
307         +Dc   --cielab-function
308                 use CIELAB function for calibration
309
310       compatibility:
311
312         +Ma   --accept-acr-nema
313                 accept ACR-NEMA images without photometric
314                 interpretation
315
316         +Mp   --accept-palettes
317                 accept incorrect palette attribute tags
318                 (0028,111x) and (0028,121x)
319
320         +Mc   --check-lut-depth
321                 check 3rd value of the LUT descriptor, compare
322                 with expected bit depth based on LUT data
323
324         +Mm   --ignore-mlut-depth
325                 ignore 3rd value of the modality LUT descriptor,
326                 determine bits per table entry automatically
327
328         +Mv   --ignore-vlut-depth
329                 ignore 3rd value of the VOI LUT descriptor,
330                 determine bits per table entry automatically
331
332       TIFF format:
333
334         +Tl   --compr-lzw
335                 LZW compression (default)
336
337         +Tr   --compr-rle
338                 RLE compression
339
340         +Tn   --compr-none
341                 uncompressed
342
343         +Pd   --predictor-default
344                 no LZW predictor (default)
345
346         +Pn   --predictor-none
347                 LZW predictor 1 (no prediction)
348
349         +Ph   --predictor-horz
350                 LZW predictor 2 (horizontal differencing)
351
352         +Rs   --rows-per-strip  [r]ows: integer (default: 0)
353                 rows per strip, default 8K per strip
354
355       PNG format:
356
357         +il   --interlace
358                 create interlaced file (default)
359
360         -il   --nointerlace
361                 create non-interlaced file
362
363         +mf   --meta-file
364                 create PNG file meta information (default)
365
366         -mf   --meta-none
367                 no PNG file meta information
368
369       JPEG format:
370
371         +Jq   --compr-quality  [q]uality: integer (0..100, default: 90)
372                 quality value for compression (in percent)
373
374         +Js4  --sample-444
375                 4:4:4 sampling (no subsampling)
376
377         +Js2  --sample-422
378                 4:2:2 subsampling (horizontal subsampling of
379                 chroma components, default)
380
381         +Js1  --sample-411
382                 4:1:1 subsampling (horizontal and vertical
383                 subsampling of chroma components)
384
385       other transformations:
386
387         +G    --grayscale
388                 convert color image to grayscale (monochrome)
389
390         +P    --change-polarity
391                 change polarity (invert pixel output)
392
393         +C    --clip-region  [l]eft [t]op [w]idth [h]eight: integer
394                 clip image region (l, t, w, h)
395
396   output options
397       general:
398
399         -im   --image-info
400                 print image details (requires verbose mode)
401
402         -o    --no-output
403                 do not create any output (useful with -im)
404
405       filename generation (only with --frame-range or --all-frames):
406
407         +Fc   --use-frame-counter
408                 use 0-based counter for filenames (default)
409
410         +Fn   --use-frame-number
411                 use absolute frame number for filenames
412
413       image format:
414
415         +op   --write-raw-pnm
416                 write 8-bit binary PGM/PPM (default for files)
417
418         +opb  --write-8-bit-pnm
419                 write 8-bit ASCII PGM/PPM (default for stdout)
420
421         +opw  --write-16-bit-pnm
422                 write 16-bit ASCII PGM/PPM
423
424         +opn  --write-n-bit-pnm  [n]umber: integer
425                 write n-bit ASCII PGM/PPM (1..32)
426
427         +ob   --write-bmp
428                 write 8-bit (monochrome) or 24-bit (color) BMP
429
430         +obp  --write-8-bit-bmp
431                 write 8-bit palette BMP (monochrome only)
432
433         +obt  --write-24-bit-bmp
434                 write 24-bit truecolor BMP
435
436         +obr  --write-32-bit-bmp
437                 write 32-bit truecolor BMP
438
439         +ot   --write-tiff
440                 write 8-bit (monochrome) or 24-bit (color) TIFF
441
442         +on   --write-png
443                 write 8-bit (monochrome) or 24-bit (color) PNG
444
445         +on2  --write-16-bit-png
446                 write 16-bit (monochrome) or 48-bit (color) PNG
447
448         +oj   --write-jpeg
449                 write 8-bit lossy JPEG (baseline)
450

NOTES

452       The following preferred interpolation algorithms can be selected  using
453       the --interpolate option:
454
455       • 1 = free scaling algorithm with interpolation from pbmplus toolkit
456       • 2 = free scaling algorithm with interpolation from c't magazine
457       • 3  =  magnification algorithm with bilinear interpolation from Eduard
458         Stanescu
459       • 4 = magnification algorithm with bicubic  interpolation  from  Eduard
460         Stanescu
461       The   --write-tiff  option  is  only  available  when  DCMTK  has  been
462       configured and compiled with support  for  the  external  libtiff  TIFF
463       library.  The  availability  of the TIFF compression options depends on
464       the libtiff configuration.
465       The --write-png option is only available when DCMTK has been configured
466       and  compiled  with support for the external libpng PNG library. Option
467       --interlace enables progressive image view while loading the PNG  file.
468       Only  a  few  applications  take  care of the meta info (TEXT) in a PNG
469       file.

TRANSFER SYNTAXES

471       dcmj2pnm supports the following transfer syntaxes for  input  (dcmfile-
472       in):
473       LittleEndianImplicitTransferSyntax             1.2.840.10008.1.2
474       LittleEndianExplicitTransferSyntax             1.2.840.10008.1.2.1
475       DeflatedExplicitVRLittleEndianTransferSyntax   1.2.840.10008.1.2.1.99 (*)
476       BigEndianExplicitTransferSyntax                1.2.840.10008.1.2.2
477       JPEGProcess1TransferSyntax                     1.2.840.10008.1.2.4.50
478       JPEGProcess2_4TransferSyntax                   1.2.840.10008.1.2.4.51
479       JPEGProcess6_8TransferSyntax                   1.2.840.10008.1.2.4.53
480       JPEGProcess10_12TransferSyntax                 1.2.840.10008.1.2.4.55
481       JPEGProcess14TransferSyntax                    1.2.840.10008.1.2.4.57
482       JPEGProcess14SV1TransferSyntax                 1.2.840.10008.1.2.4.70
483       RLELosslessTransferSyntax                      1.2.840.10008.1.2.5
484       (*) if compiled with zlib support enabled

LOGGING

486       The  level  of  logging  output  of  the various command line tools and
487       underlying libraries can be specified by the  user.  By  default,  only
488       errors  and  warnings  are  written to the standard error stream. Using
489       option --verbose also informational messages  like  processing  details
490       are  reported.  Option  --debug  can be used to get more details on the
491       internal activity, e.g. for debugging purposes.  Other  logging  levels
492       can  be  selected  using option --log-level. In --quiet mode only fatal
493       errors are reported. In such very severe error events, the  application
494       will  usually  terminate.  For  more  details  on the different logging
495       levels, see documentation of module 'oflog'.
496       In case the logging output should be written to file  (optionally  with
497       logfile  rotation),  to syslog (Unix) or the event log (Windows) option
498       --log-config can be used.  This  configuration  file  also  allows  for
499       directing  only  certain messages to a particular output stream and for
500       filtering certain messages based on the  module  or  application  where
501       they  are  generated.  An  example  configuration  file  is provided in
502       <etcdir>/logger.cfg.

COMMAND LINE

504       All command line tools  use  the  following  notation  for  parameters:
505       square  brackets  enclose  optional  values  (0-1), three trailing dots
506       indicate that multiple values are allowed (1-n), a combination of  both
507       means 0 to n values.
508       Command line options are distinguished from parameters by a leading '+'
509       or '-' sign, respectively. Usually, order and position of command  line
510       options  are  arbitrary  (i.e.  they  can appear anywhere). However, if
511       options are mutually exclusive the rightmost appearance is  used.  This
512       behavior  conforms  to  the  standard  evaluation  rules of common Unix
513       shells.
514       In addition, one or more command files can be specified  using  an  '@'
515       sign  as  a  prefix to the filename (e.g. @command.txt). Such a command
516       argument is replaced by the content  of  the  corresponding  text  file
517       (multiple  whitespaces  are  treated  as a single separator unless they
518       appear between two quotation marks) prior to  any  further  evaluation.
519       Please  note  that  a command file cannot contain another command file.
520       This simple but effective  approach  allows  one  to  summarize  common
521       combinations  of  options/parameters  and  avoids longish and confusing
522       command lines (an example is provided in file <datadir>/dumppat.txt).

ENVIRONMENT

524       The dcmj2pnm utility will  attempt  to  load  DICOM  data  dictionaries
525       specified  in the DCMDICTPATH environment variable. By default, i.e. if
526       the  DCMDICTPATH  environment   variable   is   not   set,   the   file
527       <datadir>/dicom.dic  will be loaded unless the dictionary is built into
528       the application (default for Windows).
529       The  default  behavior  should  be  preferred   and   the   DCMDICTPATH
530       environment  variable  only used when alternative data dictionaries are
531       required. The DCMDICTPATH environment variable has the same  format  as
532       the  Unix  shell PATH variable in that a colon (':') separates entries.
533       On Windows systems, a semicolon (';') is used as a separator. The  data
534       dictionary  code  will  attempt  to  load  each  file  specified in the
535       DCMDICTPATH environment variable. It is an error if no data  dictionary
536       can be loaded.

FILES

538       <datadir>/camera.lut - sample characteristics file of a camera
539       <datadir>/monitor.lut - sample characteristics file of a monitor
540       <datadir>/printer.lut - sample characteristics file of a printer
541       <datadir>/scanner.lut - sample characteristics file of a scanner

SEE ALSO

543       dcm2pnm(1), img2dcm(1)
545       Copyright  (C)  2001-2022  by OFFIS e.V., Escherweg 2, 26121 Oldenburg,
546       Germany.
547
548
549
550Version 3.6.7                   Fri Apr 22 2022                    dcmj2pnm(1)
Impressum