Plastimatch のExtension(SlicerRT)でDaemonsができるよう改良しました

OS: Ubuntu 20.04(Linux版はExtensionがInstall出来ない不具合が見つかりました), Windows10

3DSlicer Version: 4.13

Extension SlicerRT1.0.0

今回は具体的な話はさておき, 結果のみの記載しています.

以前PlastimatchのRegistrationのためのExtensionで, B-Splineしか出来ないと書きました. せっかくのポテンシャルがもったいないと思い, SlicerRT Extension (現在PlastimatchのExtensionはSlicerRTに統合されています) のソースコードを覗いたのですが, 実際やっていることはPlastimatchのコマンドの文字列(オプション含む)を作ってPlastimatchに送っているだけでした.

そのため, じゃあその文字列をDaemonsでDIRできるよう変更してやればDaemonsでDIRができるだろうとなりました.

ただし, B-Splineで有効なパラメータとDaemonsで有効なパラメータが若干違うのでその判別ができるようにする必要もありました. ただ, 主なパラメータはB-Splineのほうが多く, B-SplineのパラメータをDaemonsでは無効にすることで行けそうでした.

最終的に,

  1. 今のExtensionの画面を最大限利用して, Daemonsへの切り替えができるようにして, Daemonsに指定できないパラメータはB-Splineだけであることを明示する(値は入れれるけど, いれても無効になる)ようにパラメータ画面を変更する.

2. Daemons用のコマンド文字列を作るようソースをいじる.

3. いじったExtensionのソースも一緒にビルドしてSlicerRT Extensionをデフォルトで入っている状態にする.

としました. ソースコードはGITHUBから最新版をダウンロードしたのでSlicerは4.13になっています.

出来上がったのが, 下の画像です. Algorithmという選択項目が増えて, B-SplineかDaemonsを選べます.(あ, つづりが間違っている)

パラメータの設定が下のようになっています. (Only for B-Spline)とある項目がB-Splineの際にのみ有効な設定項目です.

Daemonsで実行してもちゃんと結果が出ます. 本当にDaemonsで処理されている? と疑問もあるかとおもいますが, 基本的に文字列作っているだけなので, そのコマンド文字列で動いているということはちゃんとDaemonsでDIRされているのだと思います. B-SplineとDaemonsの違いがどれだけかはまだ確認していませんが, 今後の予定です.