問題タブ [simpleitk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1531 参照

python - VTK UnstructuredGrid を StructuredGrid に変換する

私の問題の背景は、3D 構造が .vtk ファイルに保存されており、それを操作 (拡張、浸食など) する必要があることです。次のコード スニペットは、順番に実行するように設計されています。つまり、1 つずつ実行しても問題はありません (私が言及したものを除いて!)。

私は VTK に非常に慣れていないので、非常に基本的な間違いをお詫びします!

問題

私の問題は、UnstructuredGrid または PolyData を読み取ることができない SimpleITK の問題から生じています。

ただ、SimpleITKはStructuredGridを読めるので、VTKで読み込んで変換することで解決してみました。

ただし、その時点から、私が試したすべての方法が失敗したようです。

提案されたソリューション

numpy に変換してから、sitk 画像に変換します

それを numpy 配列 () に変換してから、ダミー変数 1 を使用して通常のグリッドを補間し、構造体の値を指定しようとしました。

しかし、これを ParaView に読み込むと、出力に境界ボックスが表示されますが、出力の輪郭は空です。

使用するShepardMethod

UnstructuredGrid を PolyData に変換した後、組み込みの を使用して補間を試みましたShepardMethod(PolyData に適用される ShepardMethod をほとんど見たように)。

上記の派手な作業と同様に、これにより ParaView にバウンディング ボックスが提供されました。輪郭を適用すると、2 つの三角形の構造が提供されます。つまり、ほとんど何も書き込まれていないようです。または、VTK を使用して出力を直接書き込もうとしました。

これにより、以前と同じ出力が生成されました。

使用するProbeFilter

代わりに上記を使用してみましたProbeFilter(変換numpyと直接書き込みの両方で)。残念ながら、出力は上記と同じでした。

sitk.WriteImage(probe_img,file_out)

ただし、これは実行可能な出力を生成しないようです (vtkStructuredGridWriter空のファイルが生成され、空probe_numpyでした)。

ParaView 出力の変更

元のデータは、ParaView を使用して開いた構造化グリッド .vtk ファイルから取得し、クリップしてメッシュに不要な構造を削除します。出力を保存すると unstructuredGrid が保存されますが、それを変更できるかどうかを判断できず、そもそもこの混乱を回避できません!

0 投票する
1 に答える
1283 参照

python - SimpleITK: 逆変換を適用

最近、画像の登録に SimpleITK を使い始めました。現在のプロジェクトでは、X 線画像と CT 画像を登録し、X 線画像でトレースされた ROI マスクに逆行列を適用する必要があります。

次の行で逆行列を取得しました。

ROI マスクに変換を適用するにはどうすればよいですか?

0 投票する
1 に答える
1437 参照

python - SimpleITK は、3D であろうと 2D であろうと、どのデータ型でも機能しません

SimpleITK を使用してレイヤー化された tiff イメージを読み込みます。これは、30 のプレーン/スライスを持つボリューム イメージです。

いろいろと遊んだ後skimageimageioボリューメトリック画像を処理する最良の方法であることがわかりましたSimpleITKが、問題は、私の画像では機能しないように見えることです。

画像を読み込んだ後、簡単に変換しnumpyて表示することもできるsitk.Show()ので、適切にロードされます。しかし、私が使用する機能は次のとおりです。

警告を与えます:

sitk::ERROR: ピクセル タイプ: 16 ビット符号なし整数のベクトルは 3D byclass itk::simple:: でサポートされていません

他のデータ型にもキャストしようとしましたが、再びエラーが発生し続けます:

sitk::ERROR: フィルターは、16 ビットの符号なし整数のキャスト ベクターから 32 ビットの浮動小数点数へのキャストをサポートしていません

上記の2Dバリエーションも試しました:

しかし、今回はエラーが発生しました:

sitk::ERROR: ピクセル タイプ: 64 ビット float のベクトルは 2D byclass itk::simple::ConnectedThresholdImageFilter でサポートされていません

何がこれを引き起こしているのでしょうか?

PS私は質問を読みました:SimpleITK N4BiasFieldCorrection、どのデータ型でも機能しません。彼の問題はキャストによって解決されるのに対し、私のものはキャストでも機能しないため、これは重複ではないと思います。

ありがとう

0 投票する
2 に答える
1283 参照

python - SimpleITK::ImageSeriesWriter を使用して軸を変更するにはどうすればよいですか?

SimpleITK::ImageSeriesWriter はデフォルトで、指定された 3D ボリュームを Z 軸に沿ってスライスし、XY ビューで 2D イメージのスライスを書き込みます。

出力が XZ または YZ ビューになるように軸を変更するにはどうすればよいですか?

言い換えれば、デフォルトの Z 軸スライスがアキシャル ビューにある場合、どうすればコロナル ビューとサジタル ビューのスライスを取得できますか?

GitHub:FNNDSC/med2imageの出力 xyz 関数を試してみました。しかし、画像配列はやみくもに書かれているため、XとYが入れ替わったり、軸の1つが反転(反転)することがあります。そのため、完全に制御するには独自のコードを作成する必要があると感じています。

上記のコードは、Z 軸のスライスを正常に書き出します。別の 2 つのビューのスライスを取得できるようにコードを変更するにはどうすればよいですか?