0

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

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

img = sitk.ReadImage(path)

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

img_s = sitk.CurvatureFlow(img, 0.125, 5)
# or
sitk.IntensityWindowing(img)
# or
img_m = sitk.ConnectedThreshold(img, (257,419,7))

警告を与えます:

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

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

img2 = sitk.Cast(img, sitk.sitkFloat32)

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

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

img_m = sitk.ConnectedThreshold(img2[:,:,7], [(257,419)])

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

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

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

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

ありがとう

4

1 に答える 1