Parse DICOMファイルはネイティブにPython
質問
何が最もシンプルで、最pythonic way構文解析し、DICOMファイルとは何ですか?
ネイティブにPython実装を使用せずに非ライブラリにも好ましい。DICOMの標準形式のファイルのデジタル医用画像( こちらの しみいただけます。
あるC/C++ライブラリの読み込みをサポート(サブセット)および開発ツールです。はしもPythonランタイム環境を含んでいます。ネイティブにPythonのパーサうとして確立されている私にとって:
- 必要な作外部からのC/C++ライブラリ.
- について学ぶものは、DICOMファイル形式です。
解決
在あるもの純粋なPythonパッケージの読みDICOMファイルをご用意 pydicom
他のヒント
を使用してい pydicom 重これらの日でした。
いですが再生されないものとします。
import dicom
data = dicom.read_file("yourdicomfile.dcm")
のジャズはもちろんのことを"データ"オブジェクトなんだか似 dcmdump 出力:
for key in data.dir():
value = getattr(data, key, '')
if type(value) is dicom.UID.UID or key == "PixelData":
continue
print "%s: %s" % (key, value)
と思い、その方法の詳細についてdicom形式または類似のファイルに書きコードの比較に基づく分析と豊富なデータベースが融合:研究の説明、ウィンドウ幅とセンター、ピクセル表現です。
お楽しみに!:)
の場合についてお知りになりたい、DICOMフォーマット"デジタルイメージング、ケーション(DICOM):実践的な導入と生存のガイド"によるOleg Pianykhは非常に読みや導入をキー DICOM。Springer-Verlagの出版社の冊の本にまとまりました。のものは、DICOM規格はもちろん、究極の参照ですが少しむからご利用可能でNEMA(http://medical.nema.org).
ファイル形式は以下の難解なんとから、プリアンブルのシーケンスが続きデータです。文に含む、ASCIIテキスト"DICM"や貸切バイトを利用されていない。以下の文には次のようなデータです。各データ要素からなるサイズの要素、二つの文字のASCIIコードを示す値の表現には、DICOMタグの値にホールドされます。データ要素のファイルの順になりDICOMタグの数が多い。画像自体はあくまでもデータ要素とサイズ、価値を表現。
値の表現を指定し正確にどのように扱うかの値です。それはかかりますか?それは文字列?の場合は文字列、短い一つまたは手続きには長い時間がかかり、文字認められますか?この値表現でコードが分かるのです。
るDICOMタグは4バイト十六進コードで構成される2バイトグループ番号2バイトの"要素"。グループ番号で識別子が分かるのでどのような情報主体のタグに適用され(例えば、グループ0010とは、患者のグループ0020る。要素の数を識別しますの価値などの患者のID番号のシリーズdescription。どのようにすべきで解釈し、コードを見上げて、DICOMタグ辞書ファイルです。
その他の詳細、その本質です。おそらく、勉強にないものを試してみましょう。つのファイルの形式は以下の通りです例えば、PDFファイルで、六角レンチをエディタ、通過程の解析では知りたい!私の助言に対して学ぶものは、DICOMによる既存のオープンソースの実装は、少なくとも期待しています!である"と"です、ます"が混乱ではなく啓発.の拡大画像がより重要だと考えます。一度、大きますので、その下りて微妙.
図書館 pydicom 上記のように思えるので大図書館のアクセスするためのDICOMデータ構造です。利用でアクセスなどRT量データのないといけないと思い、一つによって次のような処理が行わ
import dicom,numpy
dose = dicom.ReadFile("RTDOSE.dcm")
d = numpy.fromstring(dose.PixelData,dtype=numpy.int16)
d = d.reshape((dose.NumberofFrames,dose.Columns,dose.Rows))
そして、まmayavi,
from enthought.mayavi import mlab
mlab.pipeline.scalar_field(d)
これは間違った座標、線量スケーリングの原理とすべきです。
CTデータを利用できるようになります。
新しいgdcm開発現が起こる。
でJavaとC#のエラーになります。
理由書 他の dicom実装できる場合一元化、シングルC++実装し利用しやすいので多くの異なる言語
一年前、私は同じことを見つけます:Python DICOM lib
僕も感動のコードでネイティブにPythonの講読および開発ツールです。
DICOMは本当に苦痛...場合でも、メーカーだわったのです。書き込む場合はご自身のDICOM図書館いただけ異なるメーカー DICOMsを効果的に対応していないその他のベンダー《.
てみました(私の時間)を書C dicomパーサ借入れからちょっとしたルビーパーサによって巧妙にうruby-dicom'.いというのは実は非常にコードを読み取った一つの小さなバージョンにアップデートし).
最大の頭痛ろうとする積のライブラリのヘッダのタグが期待できるデータの種類です。あのスタンダード定義のタグ、およびベンダータグです。Ruby-dicomファイルに含まれる図書館のタグのテキスト形式で簡単に検査をします。
また、公式文学とのカンファレンスに参加したファイル形式のもののみ、10やさなくてはいけない、というのでPdf.
私の地元のDICOMファイルを圧縮フォローの標準やすいコードをビットの手配が用意するための各種の圧縮方式と不思議が12ビットに保存された画像を8ビット容器には少しendianness、パディングビット...
った一度の時間になったものは少ないのが現状です。
Pythonからよりもはるかに優れており、Cのためのこのスタイルのヘッダー解析でつながったりもするのだけれど。
あるライブラリ(最も多く行われるC/C++)Pythonバインディングでは、例えば:
しかし、私ためのネイティブにPythonの実施の詳細についてDICOMファイル形式です。
何なのだろう独自のポスターを試みる方法、あまりない問題を修正した。いたDICOMが、迅速検索"DICOM python"たくつかの興味深い。どうやら、このプロジェクト: http://www.creatis.univ-lyon1.fr/Public/Gdcm/ を送り届けと考えている。このpythonバインディングの写活性のメーリングリスト。