問題タブ [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.
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 が保存されますが、それを変更できるかどうかを判断できず、そもそもこの混乱を回避できません!
python - SimpleITK: 逆変換を適用
最近、画像の登録に SimpleITK を使い始めました。現在のプロジェクトでは、X 線画像と CT 画像を登録し、X 線画像でトレースされた ROI マスクに逆行列を適用する必要があります。
次の行で逆行列を取得しました。
ROI マスクに変換を適用するにはどうすればよいですか?
python - SimpleITK は、3D であろうと 2D であろうと、どのデータ型でも機能しません
SimpleITK を使用してレイヤー化された tiff イメージを読み込みます。これは、30 のプレーン/スライスを持つボリューム イメージです。
いろいろと遊んだ後skimage
、imageio
ボリューメトリック画像を処理する最良の方法であることがわかりました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、どのデータ型でも機能しません。彼の問題はキャストによって解決されるのに対し、私のものはキャストでも機能しないため、これは重複ではないと思います。
ありがとう
python - SimpleITK::ImageSeriesWriter を使用して軸を変更するにはどうすればよいですか?
SimpleITK::ImageSeriesWriter はデフォルトで、指定された 3D ボリュームを Z 軸に沿ってスライスし、XY ビューで 2D イメージのスライスを書き込みます。
出力が XZ または YZ ビューになるように軸を変更するにはどうすればよいですか?
言い換えれば、デフォルトの Z 軸スライスがアキシャル ビューにある場合、どうすればコロナル ビューとサジタル ビューのスライスを取得できますか?
GitHub:FNNDSC/med2imageの出力 xyz 関数を試してみました。しかし、画像配列はやみくもに書かれているため、XとYが入れ替わったり、軸の1つが反転(反転)することがあります。そのため、完全に制御するには独自のコードを作成する必要があると感じています。
上記のコードは、Z 軸のスライスを正常に書き出します。別の 2 つのビューのスライスを取得できるようにコードを変更するにはどうすればよいですか?