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では無効にすることで行けそうでした.
最終的に,
- 今の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の違いがどれだけかはまだ確認していませんが, 今後の予定です.