dcm2img: convertit une image DICOM au format d'image standard
SYNOPSIS
dcm2img [options] dcmfile-in [bitmap-out]
DESCRIPTION
dcm2img est un utilitaire qui lit une image DICOM, convertit les données de pixels selon les options de traitement d'image sélectionnées, puis réécrit une image dans l'un des formats d'image à usage général suivants : BMP, PGM/PPM, PNG, TIFF, JPEG ou JPEG-LS. Cet utilitaire prend en charge les images DICOM non compressées ainsi que celles compressées en JPEG, JPEG-LS et RLE.
PARAMÈTRES
dcmfile-in DICOM input filename to be converted ("-" for stdin)
bitmap-out output filename to be written (default: stdout)
OPTIONS
options générales
-h --help- affiche cette aide et quitte
--version- affiche les informations de version et quitte
--arguments- affiche les arguments de ligne de commande développés
-q --quiet- mode silencieux, n'affiche ni avertissements ni erreurs
-v --verbose- mode détaillé, affiche les détails du traitement
-d --debug- mode débogage, affiche les informations de débogage
-ll --log-level [l]evel: string constant- (fatal, error, warn, info, debug, trace) utilise le niveau l pour la journalisation
-lc --log-config [f]ilename: string- utilise le fichier de configuration f pour le journal
options d'entrée
+f --read-file- lit le format de fichier ou le jeu de données (par défaut)
+fo --read-file-only- lit uniquement le format de fichier
-f --read-dataset- lit un jeu de données sans informations de méta-fichier, syntaxe de transfert d'entrée :
-t= --read-xfer-auto- utilise la reconnaissance de la TS (par défaut)
-td --read-xfer-detect- ignore la TS spécifiée dans l'en-tête du méta-fichier
-te --read-xfer-little- lit avec la TS explicit VR little endian
-tb --read-xfer-big- lit avec la TS explicit VR big endian
-ti --read-xfer-implicit- lit avec la TS implicit VR little endian
options de traitement d'image
+F --frame [n]umber: integer- sélectionne l'image spécifiée (par défaut : 1)
+Fr --frame-range [n]umber [c]ount: integer- sélectionne c images à partir de l'image n
+Fa --all-frames- sélectionne toutes les images rotation :
+Rl --rotate-left- fait pivoter l'image vers la gauche (-90 degrés)
+Rr --rotate-right- fait pivoter l'image vers la droite (+90 degrés)
+Rtd --rotate-top-down- fait pivoter l'image de haut en bas (180 degrés) retournement :
+Lh --flip-horizontally- retourne l'image horizontalement
+Lv --flip-vertically- retourne l'image verticalement
+Lhv --flip-both-axes- retourne l'image horizontalement et verticalement mise à l'échelle :
+a --recognize-aspect- tient compte du rapport d'aspect des pixels lors de la mise à l'échelle (par défaut)
-a --ignore-aspect- ignore le rapport d'aspect des pixels lors de la mise à l'échelle
+i --interpolate [n]umber of algorithm: integer- utilise l'interpolation lors de la mise à l'échelle (1..4, par défaut : 1)
-i --no-interpolation- aucune interpolation lors de la mise à l'échelle
-S --no-scaling- aucune mise à l'échelle, ignore le rapport d'aspect des pixels (par défaut)
+Sxf --scale-x-factor [f]actor: float- met l'axe x à l'échelle selon le facteur, calcule automatiquement l'axe y
+Syf --scale-y-factor [f]actor: float- met l'axe y à l'échelle selon le facteur, calcule automatiquement l'axe x
+Sxv --scale-x-size [n]umber: integer- met l'axe x à l'échelle à n pixels, calcule automatiquement l'axe y
+Syv --scale-y-size [n]umber: integer- met l'axe y à l'échelle à n pixels, calcule automatiquement l'axe x conversion d'espace colorimétrique (images JPEG compressées uniquement) :
+cp --conv-photometric- convertit si l'interprétation photométrique est YCbCr (par défaut)
+cl --conv-lossy- convertit YCbCr en RGB si JPEG avec perte
+cg --conv-guess- convertit en RGB si la bibliothèque suppose du YCbCr
+cgl --conv-guess-lossy- convertit en RGB si JPEG avec perte et que la bibliothèque JPEG sous-jacente suppose du YCbCr
+ca --conv-always- convertit toujours YCbCr en RGB
+cn --conv-never- ne convertit jamais l'espace colorimétrique bits stored :
+bs --bits-stored-fix- corrige une valeur bits stored incohérente (par défaut) # Si la valeur de BitsStored dans le bitstream compressé est # inférieure à la valeur du jeu de données DICOM, met à jour la valeur # du jeu de données (images JPEG compressées uniquement)
-bs --bits-stored-keep- conserve une valeur bits stored incohérente # Conserve la valeur de BitsStored même en cas d'incohérence avec le # bitstream compressé. Cela peut aider à décoder correctement # certaines images défectueuses (images JPEG compressées uniquement) options de contournement pour des encodages incorrects (images JPEG compressées uniquement) :
+w6 --workaround-pred6- active le contournement pour les images JPEG lossless avec débordement du prédicteur 6 # Des images DICOM à 16 bits/pixel ont été observées "dans la nature" # et sont compressées en JPEG lossless et nécessitent un traitement # particulier, car l'encoder a produit un débordement d'entier 16 bits # dans le prédicteur 6, qu'il faut compenser (reproduire) pendant la # décompression. Cette option permet une décompression correcte de ces # images défectueuses, mais provoquera en même temps une décompression # incorrecte des images correctement compressées. À utiliser avec précaution.
+wi --workaround-incpl- active le contournement pour des données JPEG incomplètes # Cette option amène dcm2img à ignorer les données JPEG incomplètes # en fin de fragment compressé et à commencer la décompression de # l'image suivante à partir du fragment suivant (s'il existe). Cela # permet de décoder des images dont les données JPEG sont incomplètes.
+wc --workaround-cornell- active le contournement pour les images Cornell JPEG lossless 16 bits avec débordement de la table de Huffman # L'une des toutes premières implémentations open source de la # compression JPEG lossless, la bibliothèque "Cornell", comporte un # bogue bien connu qui produit des valeurs invalides dans la table de # Huffman lors de la compression d'images à 16 bits/échantillon. Cette # option active un contournement qui permet de décoder correctement de # telles images.transformation LUT de modalité :
-M --no-modality- ignore la transformation LUT de modalité stockée
+M --use-modality- utilise la transformation LUT de modalité (par défaut) transformation LUT VOI :
-W --no-windowing- aucun fenêtrage VOI (par défaut)
+Wi --use-window [n]umber: integer- utilise la n-ième fenêtre VOI du fichier image
+Wl --use-voi-lut [n]umber: integer- utilise la n-ième table de correspondance VOI du fichier image
+Wm --min-max-window- calcule la fenêtre VOI avec l'algorithme min-max
+Wn --min-max-window-n- calcule la fenêtre VOI avec l'algorithme min-max, en ignorant les valeurs extrêmes
+Wr --roi-min-max-window [l]eft [t]op [w]idth [h]eight: integer- calcule la fenêtre ROI avec l'algorithme min-max, la région d'intérêt est spécifiée par l,t,w,h
+Wh --histogram-window [n]umber: integer- calcule la fenêtre VOI avec l'algorithme Histogram, en ignorant n pour cent
+Ww --set-window [c]enter [w]idth: float- calcule la fenêtre VOI en utilisant le centre c et la largeur w
+Wfl --linear-function- définit la fonction LUT VOI sur LINEAR
+Wfs --sigmoid-function- définit la fonction LUT VOI sur SIGMOID transformation LUT de présentation :
+Pid --identity-shape- définit la forme LUT de présentation sur IDENTITY
+Piv --inverse-shape- définit la forme LUT de présentation sur INVERSE
+Pod --lin-od-shape- définit la forme LUT de présentation sur LIN OD overlay :
-O --no-overlays- n'affiche pas les overlays
+O --display-overlay [n]umber: integer- affiche l'overlay n (0..16, 0=tous, par défaut : +O 0)
+Omr --ovl-replace- utilise le mode overlay "Replace" (par défaut pour les overlays Graphic)
+Omt --ovl-threshold- utilise le mode overlay "Threshold Replace"
+Omc --ovl-complement- utilise le mode overlay "Complement"
+Omv --ovl-invert- utilise le mode overlay "Invert Bitmap"
+Omi --ovl-roi- utilise le mode overlay "Region of Interest" (par défaut pour les overlays ROI)
+Osf --set-foreground [d]ensity: float- définit la densité de premier plan de l'overlay (0..1, par défaut : 1)
+Ost --set-threshold [d]ensity: float- définit la densité de seuil de l'overlay (0..1, par défaut : 0.5) transformation LUT d'affichage :
+Dm --monitor-file [f]ilename: string- calibre la sortie selon les caractéristiques du moniteur définies dans f
+Dp --printer-file [f]ilename: string- calibre la sortie selon les caractéristiques de l'imprimante définies dans f
+Da --ambient-light [a]mbient light: float- valeur de lumière ambiante (cd/m^2, par défaut : fichier f)
+Di --illumination [i]llumination: float- valeur d'illumination (cd/m^2, par défaut : fichier f)
+Dn --min-density [m]inimum optical density: float- valeur Dmin (par défaut : off, uniquement avec +Dp)
+Dx --max-density [m]aximum optical density: float- valeur Dmax (par défaut : off, uniquement avec +Dp)
+Dg --gsd-function- utilise GSDF pour la calibration (par défaut pour +Dm/+Dp)
+Dc --cielab-function- utilise la fonction CIELAB pour la calibration compatibilité :
+Ma --accept-acr-nema- accepte les images ACR-NEMA sans interprétation photométrique
+Mp --accept-palettes- accepte les tags d'attribut de palette incorrects (0028,111x) et (0028,121x)
+Mc --check-lut-depth- vérifie la 3e valeur du descripteur LUT, la compare à la profondeur de bits attendue d'après les données LUT
+Mm --ignore-mlut-depth- ignore la 3e valeur du descripteur LUT de modalité, détermine automatiquement le nombre de bits par entrée de table
+Mv --ignore-vlut-depth- ignore la 3e valeur du descripteur LUT VOI, détermine automatiquement le nombre de bits par entrée de table format TIFF :
+Tl --compr-lzw- compression LZW (par défaut)
+Tr --compr-rle- compression RLE
+Tn --compr-none- non compressé
+Pd --predictor-default- aucun prédicteur LZW (par défaut)
+Pn --predictor-none- prédicteur LZW 1 (aucune prédiction)
+Ph --predictor-horz- prédicteur LZW 2 (différenciation horizontale)
+Rs --rows-per-strip [r]ows: integer (default: 0)- lignes par bande, 8 Ko par bande par défaut format PNG :
+il --interlace- crée un fichier entrelacé (par défaut)
-il --nointerlace- crée un fichier non entrelacé
+mf --meta-file- crée des méta-informations de fichier PNG (par défaut)
-mf --meta-none- ne crée pas de méta-informations de fichier PNG format JPEG :
+Jq --compr-quality [q]uality: integer (0..100, default: 90)- valeur de qualité pour la compression (en pourcentage)
+Js4 --sample-444- échantillonnage 4:4:4 (aucun sous-échantillonnage)
+Js2 --sample-422- sous-échantillonnage 4:2:2 (sous-échantillonnage horizontal des composantes de chrominance, par défaut)
+Js1 --sample-411- sous-échantillonnage 4:1:1 (sous-échantillonnage horizontal et vertical des composantes de chrominance) format JPEG-LS :
+Trl --rendered-lossless- compression sans perte de l'image rendue (par défaut)
+Tll --true-lossless- compression sans perte de l'image brute
+f8 --force-8-bit- force la profondeur de bits de sortie à 8 bits (incompatible avec --true-lossless) autres transformations :
+G --grayscale- convertit une image couleur en niveaux de gris (monochrome)
+P --change-polarity- inverse la polarité (inverse la sortie des pixels)
+C --clip-region [l]eft [t]op [w]idth [h]eight: integer- découpe une région de l'image (l, t, w, h)
options de sortie
-im --image-info- affiche les détails de l'image (nécessite le mode détaillé)
-o --no-output- ne crée aucune sortie (utile avec -im) génération de nom de fichier (uniquement avec --frame-range ou --all-frames) :
+Fc --use-frame-counter- utilise un compteur commençant à 0 pour les noms de fichiers (par défaut)
+Fn --use-frame-number- utilise le numéro d'image absolu pour les noms de fichiers format d'image :
+oa --write-auto- détermine le format de fichier d'après l'extension du nom de fichier (par défaut pour les fichiers) # Si le nom de fichier de sortie ne contient pas d'extension ou en # contient une inconnue ou non prise en charge, un avertissement est # affiché et un fichier BMP est écrit (voir --write-bmp).
+op --write-raw-pnm- écrit un PGM/PPM binaire 8 bits
+opb --write-8-bit-pnm- écrit un PGM/PPM ASCII 8 bits (par défaut pour stdout)
+opw --write-16-bit-pnm- écrit un PGM/PPM ASCII 16 bits
+opn --write-n-bit-pnm [n]umber: integer- écrit un PGM/PPM ASCII n bits (1..32)
+ob --write-bmp- écrit un BMP 8 bits (monochrome) ou 24 bits (couleur)
+obp --write-8-bit-bmp- écrit un BMP palette 8 bits (monochrome uniquement)
+obt --write-24-bit-bmp- écrit un BMP couleurs vraies 24 bits
+obr --write-32-bit-bmp- écrit un BMP couleurs vraies 32 bits
+ot --write-tiff- écrit un TIFF 8 bits (monochrome) ou 24 bits (couleur)
+on --write-png- écrit un PNG 8 bits (monochrome) ou 24 bits (couleur)
+on2 --write-16-bit-png- écrit un PNG 16 bits (monochrome) ou 48 bits (couleur)
+oj --write-jpeg- écrit un JPEG avec perte 8 bits (baseline)
+ol --write-jpls- écrit un JPEG-LS
NOTES
On peut sélectionner l'un des algorithmes d'interpolation privilégiés suivants avec l'option –interpolate :
- 1 = algorithme de mise à l'échelle libre avec interpolation issu du pbmplus toolkit
- 2 = algorithme de mise à l'échelle libre avec interpolation issu du c't magazine
- 3 = algorithme d'agrandissement avec interpolation bilinéaire d'Eduard Stanescu
- 4 = algorithme d'agrandissement avec interpolation bicubique d'Eduard Stanescu
L'option –write-tiff n'est disponible que lorsque DCMTK a été configuré et compilé avec la prise en charge de la bibliothèque TIFF externe libtiff. La disponibilité des options de compression TIFF dépend de la configuration de libtiff.
L'option –write-png n'est disponible que lorsque DCMTK a été configuré et compilé avec la prise en charge de la bibliothèque PNG externe libpng. L'option –interlace permet un affichage progressif pendant le chargement du fichier PNG. Seules quelques applications tiennent compte des méta-informations (TEXT) présentes dans un fichier PNG.
SYNTAXES DE TRANSFERT
dcm2img prend en charge les syntaxes de transfert suivantes en entrée (dcmfile-in) :
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99 (*)
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
JPEGProcess10_12TransferSyntax 1.2.840.10008.1.2.4.55
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
JPEGProcess14TransferSyntax 1.2.840.10008.1.2.4.57
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess6_8TransferSyntax 1.2.840.10008.1.2.4.53
RLELosslessTransferSyntax 1.2.840.10008.1.2.5
(*) si compilé avec la prise en charge de zlib activée
JOURNALISATION
Le niveau de détail de la journalisation des différents outils en ligne de commande et des bibliothèques sous-jacentes peut être spécifié par l'utilisateur. Par défaut, seules les erreurs et les avertissements sont écrits dans le flux d'erreur standard. L'option –verbose permet également de signaler des messages d'information tels que les détails du traitement. L'option –debug permet d'obtenir plus de détails sur l'activité interne, par exemple à des fins de débogage. L'option –log-level permet de sélectionner d'autres niveaux de journalisation. En mode –quiet, seules les erreurs fatales sont signalées. Dans de tels cas d'erreur très graves, l'application se termine généralement. Pour plus de détails sur les différents niveaux de journalisation, consultez la documentation du module "oflog".
Si la sortie de la journalisation doit être écrite dans un fichier (éventuellement avec rotation des fichiers journaux), vers syslog (Unix) ou le journal des événements (Windows), l'option –log-config peut être utilisée. Ce fichier de configuration permet également de diriger uniquement certains messages vers un flux de sortie particulier et de filtrer certains messages en fonction du module ou de l'application qui les génère. Un exemple de fichier de configuration est fourni dans < etcdir>/logger.cfg.
LIGNE DE COMMANDE
Tous les outils en ligne de commande utilisent la notation suivante pour les paramètres : les crochets entourent les valeurs facultatives (0-1), trois points de suspension à la fin indiquent que plusieurs valeurs sont autorisées (1-n), et la combinaison des deux signifie de 0 à n valeurs.
Les options de la ligne de commande se distinguent des paramètres par un signe '+' ou '-' en tête. En général, l'ordre et la position des options de la ligne de commande sont arbitraires (c'est-à-dire qu'elles peuvent apparaître n'importe où). Toutefois, si des options s'excluent mutuellement, c'est la dernière occurrence, la plus à droite, qui est utilisée. Ce comportement est conforme aux règles d'évaluation standard des shells Unix courants.
De plus, un ou plusieurs fichiers de commandes peuvent être spécifiés en utilisant un signe '@' comme préfixe du nom de fichier (par exemple @command.txt). Un tel argument de commande est remplacé par le contenu du fichier texte correspondant (les espaces multiples sont traités comme un séparateur unique, sauf s'ils apparaissent entre deux guillemets) avant toute évaluation ultérieure. Notez qu'un fichier de commandes ne peut pas contenir un autre fichier de commandes. Cette approche simple mais efficace permet de regrouper des combinaisons courantes d'options/paramètres et évite des lignes de commande longues et peu lisibles (un exemple est fourni dans le fichier < datadir>/dumppat.txt).
ENVIRONNEMENT
L'utilitaire dcm2img tentera de charger les dictionnaires de données DICOM spécifiés dans la variable d'environnement DCMDICTPATH. Par défaut, c'est-à-dire si la variable d'environnement DCMDICTPATH n'est pas définie, le fichier < datadir>/dicom.dic sera chargé, à moins que le dictionnaire ne soit intégré à l'application (par défaut sous Windows).
Il est préférable de conserver le comportement par défaut et de n'utiliser la variable d'environnement DCMDICTPATH que lorsque des dictionnaires de données alternatifs sont nécessaires. La variable d'environnement DCMDICTPATH a le même format que la variable PATH des shells Unix, en ce sens que les deux-points (":") séparent les entrées. Sur les systèmes Windows, le point-virgule (";") est utilisé comme séparateur. Le code du dictionnaire de données tente de charger chaque fichier spécifié dans la variable d'environnement DCMDICTPATH. C'est une erreur si aucun dictionnaire de données ne peut être chargé.
FICHIERS
< datadir>/camera.lut - exemple de fichier de caractéristiques d'une caméra
< datadir>/monitor.lut - exemple de fichier de caractéristiques d'un moniteur
< datadir>/printer.lut - exemple de fichier de caractéristiques d'une imprimante
< datadir>/scanner.lut - exemple de fichier de caractéristiques d'un scanner
VOIR AUSSI
img2dcm(1)
COPYRIGHT
Copyright (C) 2001-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.