私はVTKを初めて使用しており、2メッシュから始まるダイ類似度係数(DSC)を計算しようとしています。 DSCはVab
メッシュAの間で重複ボリュームであり、メッシュ(3Dスライサー、https://www.slicer.orgを用い.vtk形式でエクスポートすなわち器官輪郭)を読み出すためにB.メッシュ上のVTK/ITKダイス類似度係数
メッシュIは、次のスニペットを使用2 Vab/(Va + Vb)
、として計算することができます。 (私はVTKと3Dスライサーを用いて計算するものと計算されたものとの間にいくつかの違いを観察したが)
string inputFilename1 = "organ1.vtk";
// Get all data from the file
vtkSmartPointer<vtkGenericDataObjectReader> reader1 = vtkSmartPointer<vtkGenericDataObjectReader>::New();
reader1->SetFileName(inputFilename1.c_str());
reader1->Update();
vtkSmartPointer<vtkPolyData> struct1 = reader1->GetPolyDataOutput();
IはvtkMassProperties
を使用して、2つのメッシュの体積を計算することができます。
次に、2メッシュを交差させるために、vtkIntersectionPolyDataFilter
を使用しようとしています。ただし、このフィルタの出力は、入力されたvtkPolyData
オブジェクトの交差点をマークし、閉じたサーフェスではありません。したがって、私はこれらの行から何らかの形でメッシュを生成し、そのボリュームを計算する必要があります。
このようなメッシュを生成し、それを行う方法はどれが良い、正確な方法でしょうか?
あるいは、私もITKを使用しようとしました。この問題(2010年12月http://www.insight-journal.org/browse/publication/762)を処理するパッケージが見つかりましたが、ITKの最新バージョンに対してコンパイルできません。 ITKは(現在廃止されている)ITK_USE_REVIEW
フラグON
でコンパイルする必要があります。言うまでもなく、私はModule_ITKReview
をON
に設定してコンパイルしていましたが、下位互換性はありましたが運がなかったのです。
最後に、この問題を解決するための他の代替(スクリプト可能)ソフトウェア/ライブラリがある場合は、教えてください。私はこれらの計算を自動的に実行する必要があります。
通常、画像には重なりがあります。 2つのメッシュを比較したい場合は、単に距離メトリックを使用するだけではいかがですか? 'vtkDistancePolyDataFilter'を使用していますか? – mirni
@mirni私の知る限り、ダイス類似度係数は医用画像文献でよく使用されています。特に、私は研究の基盤となるいくつかの放射線治療関連の論文で使用されています。 私は他の測定基準も考慮に入れます:あなたの助言に感謝します:) –