2

DICOM ファイルからピクセル データを抽出し、iOS の画像ビューアーに渡す方法を知っている人はいますか?

簡単な質問で申し訳ありませんが、これは私が開けたワームの巨大な缶の主要な構成要素のようです。

4

3 に答える 3

6

iOSでGDCMを使用しています。私はまだそれをあまり強く押していませんが、今のところうまく機能しています。私は基本的に、 ITKに関するこの優れた記事で、iOSで実行するXCodeプロジェクトをハッキングするための指示に従いました。

iOS用にコンパイルする方法は次のとおりです。

  1. sourceforgeからソースをダウンロードし、ポートを介してcmakeをインストールしました。最近のバージョンのcmakeが必要です(私は2.8.2を使用しています)
  2. ソースがgdcm-2.0.17/というフォルダにある場合は、そのレベルに別のディレクトリ(gdcmbinなど)を作成し、そのディレクトリにcdして、ターミナルウィンドウにccmake -GXCode../ gdcm-2.0.17/と入力します。 。これにより、XCodeプロジェクトが作成されます。これを行ったとき、サンプルプログラムを作成したり、共有ライブラリを作成したりしませんでした(iOSでは機能しません)。デフォルトを実行するだけです。
  3. ビルドオプションの変更に関するITKペーパーの指示に従ってください(4ページのステップ#7)。
  4. 次に、 Clint Harrisのブログの優れた手順を使用して、GDCMをプロジェクトにリンクします。
  5. プロジェクトでGDCMへのヘッダー検索パスを設定する場合、2つのパスを入力する必要があります:blah /gdcm-2.0.17/Source/**とblah /gdcmbin/**。最初のパスの末尾の「/Source」が必要です。そうしないと、アーキテクチャに適さないヘッダーが表示されます。
  6. 1つの不具合(面倒ですが、まだ理解するのに時間を費やしていません):シミュレーターからデバイスに(またはその逆に)切り替えると、リンクエラーが大量に発生します。これは、gdcmプロジェクトが、異なるターゲットの異なるディレクトリに出力を配置しないためです。つまり、切り替え時にgdcmプロジェクトでクリーンアップと再構築を実行します。私はおそらくそれを変更するのに十分すぐにこれに悩まされるでしょう:-)。

ライブラリを呼び出して結果をObjective-Cディクショナリに入れる方法の大まかな抜粋を次に示します。

NSMutableDictionary * imageDictionary = [[NSMutableDictionary alloc] initWithCapacity:40];
// The output of gdcm::Reader is a gdcm::File
gdcm::File &file = reader.GetFile();

// the dataset is the the set of element we are interested in:
gdcm::DataSet &ds = file.GetDataSet();
const Tag studyInstance(0x0020,0x000d); // Study Instance UID
const DataElement &dicomVal = ds.GetDataElement(studyInstance);
std::string stringVal( dicomVal.GetByteValue()->GetPointer(), dicomVal.GetByteValue()->GetLength() );
NSString *val = [NSString stringWithCString:stringVal.c_str() encoding:[NSString defaultCStringEncoding]];
[imageDictionary setObject:val forKey:@"studyInstanceUID"];

(注:これは、C++とObjectiveCを組み合わせた*.mmファイルにあります)

于 2011-03-19T14:10:27.617 に答える
-1

DICOM ソフトウェアを見つけたい場合は、医用画像ソフトウェアのクリアリング ハウスであるidoimaging.comを参照してください。プラットフォーム、入力形式、出力形式、言語などを選択できます。iOS は形式としてリストされていませんが、そこにリストされているソフトウェアの多くは、ソースと共に利用でき、ライブラリ形式で便利で、MacOS X で利用できます。たとえば、 、私が選択したもの:

  • 入力形式: DICOM
  • プラットフォーム: マッキントッシュ
  • 言語: C

そしていくつかのパッケージを見つけました。MacOS と iOS の類似点と、これらの一部がソースを含むクロスプラットフォームであるという事実を考えると、そのうちの 1 つを iOS で動作させることはそれほど難しくありません。

于 2011-03-12T14:19:02.247 に答える