0

SimpleITK は使いやすい Python インターフェイスを提供します。そこからクラスを延長できますか?

登録の問題を解決する必要があります。そのためには、カスタマイズした登録クラス、特に類似性メトリックを作成する必要があります。Python で SimpleITK を拡張して使用するにはどうすればよいですか?

4

2 に答える 2

4

SimpleElastixパッケージは、標準の SimpleITK メソッドに加えて、elastix 登録ライブラリを含む SimpleITK の拡張です。メトリクスを elastix で記述し、SimpleElastix を使用してメトリクスを Python (または SimpleITK でサポートされている他の言語) でラップできます。次に、SimpleElastix を使用して登録を実行します。SimpleElastix でメトリックを使用するには:

import SimpleITK as sitk

SimpleElastix = sitk.SimpleElastix()
SimpleElastix.SetParameter("Metric", "NameOfYourMetric")
SimpleElastix.SetFixedImage(sitk.ReadImage("fixedImage.nii"))
SimpleElastix.SetMovingImage(sitk.ReadImage("movingImage.nii"))
resultImage = SimpleElastix.Execute()

Elastix 自体は ITK の v3 登録ライブラリの拡張機能であるため、ITK に慣れている場合は、elastix コードベースに違和感を覚えることはありません。src/Components/Metricsディレクトリの例を見ると、メトリクスがどのように実装されているかがわかります。たとえば、AdvancedMeanSqaures メトリックを見てください。基本的に、メトリクスを実装するには、 で始まるファイル内のGetValue()および関数を変更するだけで済みます。次に、接頭辞が付いたファイルを変更する必要がありますGetValueAndDerivative()itkelxパラメーター マップと CMakeLists ファイルを介してメトリックにパラメーターを渡し、メトリックをビルド システムに登録する場合。パラメータ マップは、メトリクスを含む登録コンポーネントを構成できるキーと値のペアです。パラメータ マップの詳細については、SimpleElastix のドキュメントまたはelastix のマニュアルを参照してください。

メトリクスを SimpleElastix でラップするには、リポジトリを複製し、 SimpleElastix を手動でビルドする方法のガイドに従ってELASTIX_DIRください。ただし、変更したバージョンの elastix に設定する必要はありません。elastix ビルド システムはメトリックを elastix でラップする処理を行い、SimpleElastix ビルド システムは Python で elastix をラップする処理を行います。

免責事項: 私は SimpleElastix の作成者です。

于 2016-03-10T14:52:05.593 に答える