SimpleITK を使用してレイヤー化された tiff イメージを読み込みます。これは、30 のプレーン/スライスを持つボリューム イメージです。
いろいろと遊んだ後skimage
、imageio
ボリューメトリック画像を処理する最良の方法であることがわかりました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、どのデータ型でも機能しません。彼の問題はキャストによって解決されるのに対し、私のものはキャストでも機能しないため、これは重複ではないと思います。
ありがとう