Provided by: dcmtk_3.6.7-6_amd64 bug

NAME

       img2dcm - Convert standard image formats into DICOM format

SYNOPSIS

       img2dcm [options] imgfile-in... dcmfile-out

DESCRIPTION

       The img2dcm tool serves as a conversion tool from a standard image format like JPEG or BMP
       to DICOM. Different output  SOP  Classes  can  be  selected.  The  additional  information
       (regarding  patients,  series, etc.) stored in the DICOM output file can be extracted from
       other DICOM files which serve as a 'template' for the resulting DICOM object. img2dcm  can
       also  be  configured  to  invent  missing  DICOM type 1 and type 2 attributes to work even
       without any template dataset.

PARAMETERS

       imgfile-in   image input filename

       dcmfile-out  DICOM output filename

OPTIONS

   general options
         -h    --help
                 print this help text and exit

               --version
                 print version information and exit

               --arguments
                 print expanded command line arguments

         -q    --quiet
                 quiet mode, print no warnings and errors

         -v    --verbose
                 verbose mode, print processing details

         -d    --debug
                 debug mode, print debug information

         -ll   --log-level  [l]evel: string constant
                 (fatal, error, warn, info, debug, trace)
                 use level l for the logger

         -lc   --log-config  [f]ilename: string
                 use config file f for the logger

   input options
       general:

         -i    --input-format  [i]nput file format: string
                 supported formats: JPEG (default), BMP

         -df   --dataset-from  [f]ilename: string
                 use dataset from DICOM file f

         -dx   --dataset-from-xml  [f]ilename: string
                 use dataset from XML file f

         -stf  --study-from  [f]ilename: string
                 read patient/study from DICOM file f

         -sef  --series-from  [f]ilename: string
                 read patient/study/series from DICOM file f

         -ii   --instance-inc
                 increase instance number read from DICOM file

       JPEG format:

         -dp   --disable-progr
                 disable support for progressive JPEG

         -de   --disable-ext
                 disable support for extended sequential JPEG

         -jf   --insist-on-jfif
                 insist on JFIF header existence

         -ka   --keep-appn
                 keep APPn sections (except JFIF)

         -rc   --remove-com
                 remove COM segment

       XML validation:

         +Vd   --validate-document
                 validate XML document against DTD

         +Vn   --check-namespace
                 check XML namespace in document root

   processing options
       attribute checking:

               --do-checks
                 enable attribute validity checking (default)

               --no-checks
                 disable attribute validity checking

         +i2   --insert-type2
                 insert missing type 2 attributes (default)
                 (only with --do-checks)

         -i2   --no-type2-insert
                 do not insert missing type 2 attributes
                 (only with --do-checks)

         +i1   --invent-type1
                 invent missing type 1 attributes (default)
                 (only with --do-checks)

         -i1   --no-type1-invent
                 do not invent missing type 1 attributes
                 (only with --do-checks)

       character set conversion of study/series file:

         -Ct   --transliterate
                 try to approximate characters that cannot be
                 represented through similar looking characters

         -Cd   --discard-illegal
                 discard characters that cannot be represented
                 in destination character set

       other processing options:

         -k    --key  [k]ey: gggg,eeee="str", path or dictionary name="str"
                 add further attribute

   output options
       target SOP class:

         -sc   --sec-capture
                 write Secondary Capture SOP class (default)

         -nsc  --new-sc
                 write new Secondary Capture SOP classes

         -vlp  --vl-photo
                 write Visible Light Photographic SOP class

         -oph  --oph-photo
                 write Ophthalmic Photography SOP classes

       output file format:

         +F    --write-file
                 write file format (default)

         -F    --write-dataset
                 write data set without file meta information

       group length encoding:

         +g=   --group-length-recalc
                 recalculate group lengths if present (default)

         +g    --group-length-create
                 always write with group length elements

         -g    --group-length-remove
                 always write without group length elements

       length encoding in sequences and items:

         +e    --length-explicit
                 write with explicit lengths (default)

         -e    --length-undefined
                 write with undefined lengths

       data set trailing padding (not with --write-dataset):

         -p    --padding-off
                 no padding (implicit if --write-dataset)

         +p    --padding-create  [f]ile-pad [i]tem-pad: integer
                 align file on multiple of f bytes
                 and items on multiple of i bytes

NOTES

   Attribute Sources
       For converting a general image format into DICOM format, the img2dcm  application  may  be
       fed  with some additional input for filling mandatory (and optional) attributes in the new
       DICOM file like patient, study and series information. This information can  be  collected
       using  different  approaches,  which can be combined and are applied to the result file in
       the following order:

       • Using the --dataset-from option img2dcm is forced to import attributes from an  existing
         DICOM  file.  The  given  DICOM  file  is fully imported and serves as the basis for all
         further export operations. As an exception, the SOP Instance UID is not copied  by  this
         option.  Also image related data like Rows, Columns etc. is exchanged during conversion.
         Note that img2dcm does not check any other attribute values for validity, e.g.  it  does
         not  look  into  sequences  to adapt any attributes to the new object (referenced images
         etc.). Therefore, it is recommended to use the templates in the data directory for (old)
         SC and VLP objects. See also section 'Input Templates'.
       • Using  the --dataset-from-xml option img2dcm is also forced to import attributes from an
         existing file. In this case, however, the file must contain XML data in  the  format  as
         produced by dcm2xml.
       • The  --study-from  and  --series-from options (mutually exclusive) can be used to import
         patient, study and series information from an existing DICOM file. If  --series-from  is
         specified,  then the given DICOM file is opened by img2dcm and all mandatory information
         down to the series level is imported. Note that this includes patient, study and  series
         information.  In case of --study-from, the series information is excluded. The following
         attributes are taken over:
             Patient Level:
               Patient's Name
               Patient ID
               Patient's Sex
               Patient's Birth Date
               Specific Character Set

             Study Level:
               Study Instance UID
               Study Date
               Study Time
               Referring Physician's Name
               Study ID
               Accession Number

             Series Level (only in case of option --series-from):
               Series Instance UID
               Series Number
               Manufacturer
       • With the --insert-type2 and --invent-type1 options (both enabled per  default),  missing
         attributes  (type  2 attributes) and/or missing attribute values (for type 1 attributes)
         are automatically added and invented by img2dcm. Please note that these options are only
         evaluated  if  option  --do-checks  is  enabled (default). If the --no-checks options is
         enabled, no automatic attribute insertion will take place.
       • The --key option can be used to add further attributes to the DICOM output file.  It  is
         also  possible to specify sequences, items and nested attributes using the --key option.
         In these cases, a special 'path' notation has to be used. Details on this path  notation
         can be found in the documentation of dcmodify. The --key option can be present more than
         once. The value part (after the '=') may be absent causing the attribute to be set  with
         zero  length.  Please  be advised that the --key option is applied at the very end, just
         before saving the DICOM file, so there is no value checking whatsoever.
   UIDs
       New Study and Series Instance UIDs are generated if necessary after applying the  --study-
       from  and  --series  options. If Study Instance UID or Series Instance UID are not present
       after these steps, they are newly generated, independently from  each  other.  A  contrary
       behavior  is  chosen  for the SOP Instance UID that one could expect to be taken over when
       using the --dataset-from option. This is not the case, the SOP Instance UID is not  copied
       to the new object. This should be the desirable behavior for most use cases. However, if a
       certain SOP Instance UID should be inserted into the new object, the --key  option  should
       be used.
   Input Templates
       For  supporting  the  conversion into DICOM, img2dcm comes with some pre-defined templates
       which can be used for the --dataset-from option (see sample files SC.dump  and  VLP.dump).
       These  templates  should  be  filled  with  the  desired  values  and  then must be dumped
       (converted) to a DICOM file before actually being  used  with  img2dcm.  Use  dump2dcm  to
       convert the dump to DICOM. Example:
         dump2dcm SC.dump SC.dcm

       For   Ophthalmic   Photography  images,  XML  templates  are  provided  (see  sample  file
       OP_template_utf_8.xml and OP_template_latin_1.xml).
       It is possible to use any DICOM file as a template. Please note that  the  complete  DICOM
       dataset  is  imported;  hence, it should be assured that only attributes are present which
       should be part of the constructed DICOM object. The SOP  Class  UID  and  the  Pixel  Data
       attributes  (including  attributes like Rows, Columns etc.) are not copied but replaced by
       img2dcm during conversion.
   Character Sets
       When an input template is loaded using --dataset-from or --dataset-from-xml, the  specific
       character  set  of that template is used for the generated DICOM file. If the --study-from
       or --series-from options are used additionally, img2dcm will try to convert the  character
       set  of  these attributes to that of the template, and will report an error if that is not
       possible. If the --study-from or --series-from options are used without  a  template,  the
       specific  character  set  of  this  source  is used for the generated DICOM file. Any keys
       specified on the command line with the --key option are treated as raw bytes and  override
       any  attributes  that  may  already  be  present  due  to a template or study/series file.
       Therefore, care should be taken to not specify a specific character  set  on  the  command
       line  if  one  might  be loaded from another file. It is also the user's responsibility to
       ensure that attribute values specified on the command line use the correct encoding, as no
       conversion will take place before the values are stored in the DICOM file.
   Input Plugins
       The img2dcm application currently supports the JPEG and the BMP image format as input.
   JPEG Input Plugin
       For JPEG, the original JPEG from the source file is not decoded but extracted and slightly
       transformed (e.g. JFIF header is cut off) to allow fast conversion of even big JPEG  files
       without the need of decoding and re-encoding. The JPEG plugin chooses the necessary output
       transfer syntax automatically depending on the actual encoding of the data inside the JPEG
       file.  Therefore, the following Transfer Syntaxes (and their corresponding JPEG encodings)
       are used by the JPEG plugin:
       • JPEG Coding Process 1 Baseline, Lossy, Non-Hierarchical, Sequential, DCT, Huffman, 8 Bit
         SOP Class = 1.2.840.10008.1.2.4.50
       • JPEG  Coding  Process  2  (8-bit)  and  4  (12-bit)  Extended,  Lossy, Non-Hierarchical,
         Sequential, DCT, Huffman, 8/12 Bit SOP Class = 1.2.840.10008.1.2.4.51
       • JPEG Coding Process 10 (8-bit) and 12 (12-bit) Full Progression,  lossy,  Non-Hierarch.,
         Progressive, DCT, Huffman, 8/12 Bit SOP Class = 1.2.840.10008.1.2.4.55
       Color and grayscale images are supported.
       The  support  for the Extended JPEG Transfer Syntax can be disabled (--disable-ext option)
       as well as the support for the (retired) Progressive JPEG Transfer Syntax (--disable-progr
       option).
       JPEG  lossless  encoding as well as any arithmetic or hierarchical JPEG encoding modes are
       not supported by the plugin.
       JFIF (JPEG File Interchange Format) information facilitates optional  APPn  markers  in  a
       JPEG  file.  Many  digital  cameras  do  not integrate such JFIF information into the JPEG
       output they create. For example, JFIF contains information about the pixel aspect ratio of
       the  compressed  image.  If you want the img2dcm application to insist on a JFIF header in
       the JPEG stream, you can use the option --insist-on-jfif  which  will  abort  if  no  JFIF
       information can be found. By default, missing JFIF information is ignored.
       For DICOM it is kind of a 'gray zone', whether the integration of JFIF (or any other APPn)
       data into the DICOM object's internal JPEG stream is allowed or  not.  However,  the  most
       reliable  approach is to cut those markers and their information off the JPEG stream. This
       approach is also taken by the img2dcm application. By default, all APPn  markers  are  cut
       off  from  the  original JPEG stream. However, if you want to keep other APPn markers than
       JFIF (e.g. EXIF information) inside the DICOM stream,  the  option  --keep-appn  does  the
       trick.  It should also be slightly faster than cutting off APPn information, because it is
       not necessary to scan the whole  JPEG  stream  for  such  data.  As  stated  before,  JFIF
       information is always removed by img2dcm. However, when using this option, the APP2 marker
       is retained, but img2dcm does not create an equivalent ICC Profile (0028,2000) attribute.
   BMP Input Plugin
       img2dcm supports BMP as input format. However, so far only the most common BMP images  are
       supported.  In  particular, BMP images which use bit fields or run length encoding will be
       rejected. Such images are uncommon. Input images will either be  converted  into  a  DICOM
       image  with RGB color model and a bit depth of 24, or into an image with MONOCHROME2 color
       model an 8 bits per pixel. There are  no  specific  options  for  fine-tuning  BMP  format
       conversion.
   Output Plugins
       The  desired  output  SOP  Class  can  be  selected on the command line. Currently, export
       plugins for the Secondary Capture Image SOP class (default, option  -sc),  the  Multiframe
       Secondary  Capture  Image  SOP classes (option -nsc), Visible Light Photographic Image SOP
       class (option -vl), and the Ophthalmic Photography Image SOP  Classes  (option  -oph)  are
       available.  Please  note  that the first one is deprecated according to the DICOM standard
       but is selected as a default because it is widely supported. Future  versions  of  img2dcm
       might provide further output plugins for other SOP Classes.
       For  the  new  Secondary Capture SOP classes, it is not possible to specify which specific
       SOP class should  be  used  for  output.  That  is  because  these  new  SOP  classes  are
       differentiated  from  each other by color depth (1/8/16) and the fact whether the image is
       black/white or color. That is why img2dcm decides  during  conversion,  which  output  SOP
       class is suitable for a given source image.

EXAMPLES

       Here are some examples that show how the img2dcm application can be used.
       1.  img2dcm image.jpg out.dcm
           Read  JPEG  file  'image.jpg', convert to the old Secondary Capture SOP class and save
           the result to DICOM file 'out.dcm'. This is the easiest way of using img2dcm. Any type
           1  and  type  2  attributes  required  for writing valid objects of this SOP class are
           inserted automatically.
       2.  img2dcm -i BMP image.bmp out.dcm
           Same as above but tells img2dcm to read a BMP file instead of JPEG.
       3.  img2dcm image.jpg out.dcm -vlp -k 'PatientName=Bond^James'
           Same as first example, but writes Visible Light Photographic Image object to 'out.dcm'
           and sets PatientName to 'Bond^James' which otherwise would be left empty.
       4.  img2dcm image.jpg out.dcm --series-from template.dcm -k 'PatientName=Bond^James'
           Same   as   1),   but   imports   patient/study/series  information  from  DICOM  file
           'template.dcm'. Please note that attribute PatientName will  contain  'Bond^James'  at
           the  end,  any  value from 'template.dcm' will be overwritten. That is, because the -k
           option is applied at the very end of the conversion pipeline (see above).
       5.  img2dcm image.jpg out.dcm --no-checks
           Same as 1), but does not perform any attribute checking and  no  type  1  and  type  2
           attribute insertion! So in this case, an invalid DICOM object would be generated. This
           can be interesting if the output file is not meant to be completed  but  will  undergo
           further  transformations, e.g. adding attributes using dcmodify. Only use option --no-
           checks if you know what you are doing!
       6.  img2dcm image.jpg out.dcm --no-type1-invent
           Same as 1), but does not insert missing type 1 attributes and/or their values. Type  2
           attributes will be inserted. Note that in this case it must be assured that all type 1
           attributes are provided by other means, i. e. by adding them with  the  --key  option.
           Otherwise, img2dcm will report an error and will stop converting.
       7.  img2dcm image.jpg out.dcm --keep-appn --insist-on-jfif
           Same  as  1),  but  takes  over  APPn  information  like  EXIF into the DICOM object's
           resulting JPEG stream. Further, --insist-on-jfif will force img2dcm  to  abort  if  no
           JFIF information is existent in the source file.

LOGGING

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

COMMAND LINE

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

ENVIRONMENT

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

FILES

       <datadir>/SC.dump - Sample dump file for Secondary Capture images
       <datadir>/VLP.dump - Sample dump file for Visible Light Photographic images
       <datadir>/OP_template.xml - Sample XML template for Ophthalmic Photography images

SEE ALSO

       dcm2pnm(1), dcmj2pnm(1), dump2dcm(1), dcmconv(1), dcmodify(1), dcm2xml(1)

COPYRIGHT

       Copyright (C) 2007-2022 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.