Python解析マルチフレームdicomデータ詳細
概要
pydicomはよく使うpython DICOMパーサーです。しかし、複数のフレームを解析する例は提供されていない。本文は相関関数とDICOM知識を結び付けて簡単に説明します。
DICOMマルチフレームデータストア
DICOM規格では、マルチフレームデータの格納に関する最も重要な部分は、PS 3.5 Annex A.4 A.Transfer Syntxes For Enccapulation of Encocded Pixel Dataであると説明しています。
いつでも、Pixel DataはPixel Data(7 FE 0,0010)に保存されます。直接保管する可能性もありますし、包装されて保管される可能性もあります。一般的な多フレーム図は、一般的にパッケージ保存方式を採用しており、特にデータストアが圧縮形式を採用している場合。
パッケージ保存時にデータは多くのデータセグメントに分割され、各セグメントは一つのTag(FFFE,E 000)のDICOM項目として保存されます。最初の項目はベースオフセットテーブルを保存し、各フレームの開始オフセットを保存する。その後、後のデータ段は本当のデータを保存します。
*理論上、一フレームは複数のデータセグメントに保存できます。**しかし、1つのデータセグメントは2フレームのデータを保存しません。実際のアプリケーションでは、Frameがデータセグメントをまたぐことはあまり見られませんが、良いDICOM Paserはこのような状況をサポートするべきです。これは、いくつかのDICOMライブラリのインターフェースが少し奇妙に見える原因です。
pydicomアプリケーション
pydicom 1.2を例にとり、pydicomp.encapsは複数フレームに関する機能をカプセル化している。解析で使用可能ないくつかの関数
マルチフレームはpydicomp.encapsを用いて処理する。
pydicome.encaps.decode_data_sequenceは各(FFFE,E 000)からなるitemを返します。形はbyte stringのlistです。このように一回すべてのfragmentデータを入手したら、メモリが消耗するかもしれません。理論的に手に入れたのはフレームではないことに注意してください。
pydicome.encaps.generate_pixel_dataはgeneratorを生成する。毎回繰り返して、一つのfragmentに戻ると、一つのframe tupleが作成されます。一つのframeは一つのbytesで、一つのtupleは一つのFrameです。一つのFameがFragmentに保存されたら。tupleは一つの要素だけです。
pydicome.encaps.generate_pixel_data_frame反復は毎回1つのbytesを返し、このbytesはフレームのすべてのデータを表している。これは一番よく使う関数です。コードが実現するということは、ゲナートを動かすことです。pixel_dataが生成したtupleをつなぎ合わせました。
これらの方法の入力は全部pixel_です。array対応するPydicomはfpをパラメータにする方法を提供する。
以上のPythonは多フレームdicomのデータを解析しました。詳細は小編が皆さんに提供した内容の全部です。参考にしてもらいたいです。どうぞよろしくお願いします。
pydicomはよく使うpython DICOMパーサーです。しかし、複数のフレームを解析する例は提供されていない。本文は相関関数とDICOM知識を結び付けて簡単に説明します。
DICOMマルチフレームデータストア
DICOM規格では、マルチフレームデータの格納に関する最も重要な部分は、PS 3.5 Annex A.4 A.Transfer Syntxes For Enccapulation of Encocded Pixel Dataであると説明しています。
いつでも、Pixel DataはPixel Data(7 FE 0,0010)に保存されます。直接保管する可能性もありますし、包装されて保管される可能性もあります。一般的な多フレーム図は、一般的にパッケージ保存方式を採用しており、特にデータストアが圧縮形式を採用している場合。
パッケージ保存時にデータは多くのデータセグメントに分割され、各セグメントは一つのTag(FFFE,E 000)のDICOM項目として保存されます。最初の項目はベースオフセットテーブルを保存し、各フレームの開始オフセットを保存する。その後、後のデータ段は本当のデータを保存します。
*理論上、一フレームは複数のデータセグメントに保存できます。**しかし、1つのデータセグメントは2フレームのデータを保存しません。実際のアプリケーションでは、Frameがデータセグメントをまたぐことはあまり見られませんが、良いDICOM Paserはこのような状況をサポートするべきです。これは、いくつかのDICOMライブラリのインターフェースが少し奇妙に見える原因です。
pydicomアプリケーション
pydicom 1.2を例にとり、pydicomp.encapsは複数フレームに関する機能をカプセル化している。解析で使用可能ないくつかの関数
マルチフレームはpydicomp.encapsを用いて処理する。
pydicome.encaps.decode_data_sequenceは各(FFFE,E 000)からなるitemを返します。形はbyte stringのlistです。このように一回すべてのfragmentデータを入手したら、メモリが消耗するかもしれません。理論的に手に入れたのはフレームではないことに注意してください。
pydicome.encaps.generate_pixel_dataはgeneratorを生成する。毎回繰り返して、一つのfragmentに戻ると、一つのframe tupleが作成されます。一つのframeは一つのbytesで、一つのtupleは一つのFrameです。一つのFameがFragmentに保存されたら。tupleは一つの要素だけです。
pydicome.encaps.generate_pixel_data_frame反復は毎回1つのbytesを返し、このbytesはフレームのすべてのデータを表している。これは一番よく使う関数です。コードが実現するということは、ゲナートを動かすことです。pixel_dataが生成したtupleをつなぎ合わせました。
これらの方法の入力は全部pixel_です。array対応するPydicomはfpをパラメータにする方法を提供する。
以上のPythonは多フレームdicomのデータを解析しました。詳細は小編が皆さんに提供した内容の全部です。参考にしてもらいたいです。どうぞよろしくお願いします。