スキップしてメイン コンテンツに移動

DCMTKを学ぶ - [dcmconv] dcmdata: a data encoding/decoding library and utility apps -

DCMTKを学ぶ - [dcmconv] dcmdata: a data encoding/decoding library and utility apps -


DICOMファイルエンコーディングを変換します。
説明を飛ばしてやり方だけ知りたい方は、ページ最後を参照ください。

説明

 dcmconvユーティリティはDICOMファイルを読み取り、エンコーディング変換を実行し、変換されたデータを出力ファイルに書き込みます。
画像の圧縮や解凍に利用します。

コマンドラインインターフェースからの基本的な使い方

>dcmconv [options] dcmfile-in dcmfile-out
  • dcmconv :コマンド
  • [options] :オプションを指定するデフォルト位置
  • dcmfile-in:入力されるdcmファイルのURI/URL 
  • dcmfile-out:出力されるdcmファイルのURI/URL

一般的なオプション

(左:省略記載、右:略なし記載)
  -h    --help
          この機能のヘルプを表示します

 --version
          この機能に必要なライブラリを含めてバージョンを表示します

 --arguments
          コマンドライン引数を拡張します

  -q    --quiet
          クワイエットモード。エラーやワーニングを表示しません

  -v    --verbose
          詳細モード。詳細ログを表示します

  -d    --debug
          デバッグモード。デバッグ情報を表示します

  -ll    --log-level  [l]evel: string constant (fatal, error, warn, info, debug, trace)
         ロガーレベルを指定します

  -lc   --log-config  [f]ilename: string
          ロガーにコンフィグファイルを指定します。

インプットオプション


input file format:

  +f   --read-file
         ファイルフォーマットまたはデータセットを読み取る(default)

  +fo  --read-file-only
         ファイルフォーマットのみ読み取る

  -f   --read-dataset
         ファイルメタ情報を除くデータセットを読み取る

input transfer syntax:

  -t=  --read-xfer-auto
         転送構文を認識する (default)

  -td  --read-xfer-detect
         指定された転送構文を持つファイルメタヘッダーを無視する

  -te  --read-xfer-little
         explicit VR little endianで読み込む

  -tb  --read-xfer-big
         explicit VR big endianで読み込む

  -ti  --read-xfer-implicit
         implicit VR little endianで読み込む

parsing of file meta information:

  +ml  --use-meta-length
         ファイルメタ情報グループ長を使用する (default)

  -ml  --ignore-meta-length
         ファイルメタ情報グループ長を無視する
parsing of odd-length attributes:

  +ao  --accept-odd-length
         奇数長の属性を許可する (default)

  +ae  --assume-even-length
         奇数長の属性に1byte加算して真の値を仮定する

handling of explicit VR:

  +ev  --use-explicit-vr
         explicit VRのデータセットを利用する (default)

  -ev  --ignore-explicit-vr
         explicit VRを無視する (data dictionaryを優先)

handling of non-standard VR:

  +vr  --treat-as-unknown
         非標準のVRはUnKnownとして取り扱う (default)

  -vr  --assume-implicit
         implicit VR little endianとして読み込みを試す

handling of defined length UN(Unknown) elements:

  -uc  --retain-un
         バイト長が定義されているUnknown属性のVRをUNのまま残す (default)

  +uc  --convert-un
         バイト長が定義されているUnknown属性のVRがわかれば、真のVRに変換する

handling of undefined length UN elements:

  +ui  --enable-cp246
         バイト長が未定義かつVRがUNの属性をimplicit VRとして読み込む (default)

  -ui  --disable-cp246
         バイト長が未定義かつVRがUNの属性をexplicit VRとして読み込む

handling of defined length UN elements:

  -uc  --retain-un
         バイト長が定義済みかつVRがUNの属性をUNとして取り扱う (default)

  +uc  --convert-un
         バイト長が定義済みかつVRがUNの属性を、もしVRがわかれば真のVRに変換する

handling of private max-length elements (implicit VR):

  -sq  --maxlength-dict
         dicom.dicの定義に従う (default)

  +sq  --maxlength-seq
         未定義のバイト長として読み込む

handling of wrong delimitation items(区切りアイテム属性の誤り):

  -rd  --use-delim-items
         データセットからの区切り項目を使用する (default)

  +rd  --replace-wrong-delim
         誤っているシーケンスの区切り項目(アイテム属性)を置き換える

handling of illegal undefined length OB/OW elements:

  -oi  --illegal-obow-rej
         不正な要素を含むデータセットを拒否する (default)

  +oi  --illegal-obow-conv
         定義されていない長さのOB/OW要素をSQに変換する

handling of VOI LUT Sequence with OW VR and explicit length(OW VRと明示的な長さのVOI LUTシーケンスの処理):

  -vi  --illegal-voi-rej
         不正なVOI LUTをもつデータセットを拒否する (default)

  +vi  --illegal-voi-conv
         不正なVOI LUTをSQに変換する

handling of explicit length pixel data for encaps. transfer syntaxes:

  -pe  --abort-expl-pixdata
         明示的な長さのピクセルデータで中断する (default)

  +pe  --use-expl-pixdata
         明示的な長さのピクセルデータを使用する

general handling of parser errors:

  +Ep  --ignore-parse-errors
         パースエラーのリカバーにトライする

  -Ep  --handle-parse-errors
         パースエラーを検出し、処理を中断する (default)

other parsing options:

  +st  --stop-after-elem  [t]ag: "gggg,eeee" or dictionary name
         タグ番号で要素を指定した後にパースを中断する

automatic data correction:

  +dc  --enable-correction
         自動データ補正を許可する (default)

  -dc  --disable-correction
         自動データ補正を許可しない

bitstream format of deflated input:

  +bd  --bitstream-deflated
         deflated bitstreamを使用 (default)

  +bz  --bitstream-zlib
         deflated zlib bitstreamを使用

処理オプション

specific character set:

  # the following options require support from an underlying character
  # encoding library (see output of --version on which one is available)

  +U8  --convert-to-utf8
     影響を受けるすべての要素値を変換する
         特定の文字セット(0008,0005)からUTF-8へ

  +L1  --convert-to-latin1
         影響を受けた要素の値をISO 8859-1に変換する

  +A7  --convert-to-ascii
         影響を受ける要素の値を7ビットのASCIIに変換する

  +C   --convert-to-charset  [c]harset: string
         影響を受けた要素の値をDICOMで定義された用語cで指定された文字に変換する

  -Ct  --transliterate
     類似文字で表現できない文字の近似

  -Cd  --discard-illegal
         destinationの文字セットで表現できない文字を破棄する

other processing options:

  -ig  --no-invalid-groups
         無効なグループ番号を持つ要素を削除する

アウトプットオプション


output file format:

  +F   --write-file
         ファイル形式を書き込む (default)

  +Fm  --write-new-meta-info
         新しいメタ情報を含むファイル形式を書き込む

  -F   --write-dataset
         ファイルメタ情報なしでデータセットを書き込む

output transfer syntax:

  +t=  --write-xfer-same
         入力と同じ転送構文で書き込み(デフォルト)

  +te  --write-xfer-little
         explicit VR little endianで書き込み

  +tb  --write-xfer-big
         explicit VR big endianで書き込み

  +ti  --write-xfer-implicit
         implicit VR little endianで書き込み

  +td  --write-xfer-deflated
         deflated explicit VR little endianで書き込み

  +tg  --write-xfer-ge
         big endian pixel dataを持つprivate GE implicit VR little endianを書き込む (non-standard)

post-1993 value representations:

  +u   --enable-new-vr
         新しいVR(UN/UT)のサポートを有効にする (default)

  -u   --disable-new-vr
         新しいVRのサポートを無効にし、VRをOBに変換する

group length encoding:

  +g=  --group-length-recalc
         もしあればグループ長を再計算する (default)

  +g   --group-length-create
         常にグループ長の要素を書き込む

  -g   --group-length-remove
         グループ長要素なしで常に書き込み

length encoding in sequences and items:

  +e   --length-explicit
         明示的なバイト長の書き込み (default)

  -e   --length-undefined
         定義されていないバイト長の書き込み

  +eo  --write-oversized
         大きすぎる明示的な長さのシーケンスを書き込む
         未定義のバイト長でも。 (default)

  -eo  --abort-oversized
         大きすぎる明示的なシーケンス/アイテムは中断する

data set trailing padding (not with --write-dataset)(データセット末尾のパディング(--write-datasetではなく)):

  -p=  --padding-retain
         パディングを変更しない(デフォルト以外の場合は--write-dataset)

  -p   --padding-off
         パディングなし(暗黙的に--write-datasetの場合)

  +p   --padding-create  [f]ile-pad [i]tem-pad: integer
         ファイルを複数のfバイトに整列させ、アイテムを複数のiバイトに整列させる

deflate compression level (only with --write-xfer-deflated)(圧縮レベルを収縮させます(--write-xfer-deflatedでのみ)):

  +cl  --compression-level  [l]evel: integer (default: 6)
         0 =非圧縮、1 =高速、9 =最適圧縮

使用例

サンプルDICOMデータ:http://www.jira-net.or.jp/dicom/dicom_data_01_03.html
NM_LEE_IR6.dcm

サンプルデータが圧縮されている場合、変換できません(https://forum.dcmtk.org/viewtopic.php?t=739)。下記のコマンドプロンプトキャプチャ画面に例を示します。

サンプルデータをデスクトップに移動しておきます。
コマンドプロンプトで、次のように入力しました。

>dcmconv +te C:\Users\tatsu\Desktop\NM_LEE_IR6.dcm C:\Users\tatsu\Desktop\NM_ExLEE_IR6.dcm

(コマンドの意味)
dcmconv :コマンド
+te :オプション
dcmfile-in:C:\Users\tatsu\Desktop\NM_LEE_IR6.dcm
dcmfile-out:C:\Users\tatsu\Desktop\NM_ExLEE_IR6.dcm

※コマンドとオプションの間、オプションとdcmfile-inの間、また、dcmfile-in と dcmfile-outのパスの間には半角スペースを入れてください。

入力後、Enterで実行します。出力に設定しているNM_ExLEE_IR6.dcmファイルが新規作成されます。


CMD画面
(一行目に、JPEG圧縮画像からの変換でエラーキャッチ) 
(2度目のコマンドでImLEE→ExLEE変換)

左(原画像):Implicit VR Little Endian
右(変換後):Explicit VR Little Endian

Transfer Syntax UID
(原画像)1.2.840.10008.1.2 Implicit VR Endian(Default Transfer Syntax for DICOM.)
(変換後)1.2.840.10008.1.2.1 Explicit VR Little Endian

以上

Visionary Imaging Services, Inc.
Tatsuaki Kobayashi

コメント