1

byte[]DICOM 画像の生のピクセル データがあります。byte[]これをImageオブジェクトに変換したいと思います。

私は試した:

Image img = Image.FromStream(new MemoryStream(byteArray));

しかし、これは私にとってはうまくいきません。他に何を使用すればよいですか?

4

7 に答える 7

3

注意すべきことの 1 つは、dicom の「イメージ」が必ずしも単なるイメージ データではないということです。dicom ファイル形式には、生の画像データよりもはるかに多くのデータが含まれています。これは、あなたがハングアップしている場所かもしれません。dicom のウィキペディアの記事にリンクされている dicom ファイル標準を確認することを検討してください。これは、実際に関心のある情報を解析する方法を理解するのに役立ちます。

于 2009-04-04T07:08:34.313 に答える
2

あなたは次のことをしなければなりません

  1. ファイルからPIXELDATAタグを特定します。FileStreamを使用して、バイトごとに読み取ることができます。
  2. ピクセルデータを読み取る
  3. RGBに変換する
  4. RGBからBitMapオブジェクトを作成します
  5. Graphicsクラスを使用して、パネルにBitMapを描画します。
于 2011-05-13T07:05:03.410 に答える
1

GDCM を使用する必要があります。

草の根 DiCoM は、DICOM 医療ファイル用の C++ ライブラリです。自動的に python/C#/Java にラップされます (swig を使用)。RAW、JPEG 8/12/16 ビット (非可逆/可逆)、JPEG 2000、JPEG-LS、RLE、デフレート (zlib) をサポートしています。

移植性があり、ほとんどのシステム (Win32、Linux、MacOSX) で動作することが知られています。

例を参照してください。

于 2009-09-04T14:03:12.610 に答える
1

ピクセル データは、通常 (常にではありませんが) DICOM データの最後で終了します。幅、高さ、ストライド、および色深度を把握できる場合は、(7FE0,0010) データ要素値までスキップして、後続のバイトを取得するだけで実行できるはずです。これは、ほとんどの通常の画像ビューアが DICOM 画像を表示するときに使用するトリックです。

于 2010-09-12T22:30:18.913 に答える
1

DICOM ファイルから画像を取り出すために使用できるEvilDicom ( http://rexcardan.com/evildicom/ ) という C# ライブラリがあります。ウェブサイトでそれを行う方法に関するチュートリアルがあります。

于 2011-03-09T00:01:44.653 に答える
0

DICOM はばかげた仕様であり、近い将来に見直されることを心から願っています。とはいえ、Offis には、さまざまな一般的なエンコーディングで dicom を変換するのにかなり優れたソフトウェア スイート「DCMTK」があります。ファイル x-bytes を先にスキップしようとするだけで、単一のファイルの場合はおそらく問題ありませんが、ボリュームまたは複数のボリュームがある場合は、より堅牢な戦略が必要です。DCMTK の変換コードを使用して、pnm に入る前にイメージ ビットを取得しました。DCMTK で探しているファイルは、エンコーディング スキームに応じて dcm2pnm または場合によっては dcmj2pnm です。

ランタイム フラグの 1 つで修正したスケール ウィンドウに問題がありました。DCMTK はオープン ソースであり、かなり単純なビルド手順が付属しています。

于 2010-10-23T22:52:43.137 に答える