2016-10-12 48 views
1

で作業していないだけでSimpleITKの最新バージョンをインストールし、私は単純なコードを実行しようとしています。エラーは、私が試したSimpleITK N4BiasFieldCorrection、として任意のデータ型

RuntimeError: Exception thrown in SimpleITK N4BiasFieldCorrection: /scratch/dashboards/SimpleITK-OSX10.7-intel-pkg/SimpleITK/Code/Common/include/sitkDualMemberFunctionFactory.hxx:214: 
sitk::ERROR: Pixel type: 64-bit signed integer is not supported in 2D byN3itk6simple32N4BiasFieldCorrectionImageFilterE 

ある

im = sitk.ReadImage('img.nii.gz') 
im_bin = sitk.ReadImage('img_bin.nii.gz') 
im_bfc = sitk.N4BiasFieldCorrection(im, im_bin) 

int、float、signed、unsignedにキャストして、2Dと3Dの画像を試しました。私も同様に使用しようとしましたhttps://itk.org/SimpleITKDoxygen07/html/N4BiasFieldCorrection_8py-example.html そして、エラーはいつも同じでした。 SimpleITKの他のモジュールが動作するようです。 エラーを再現できますか?
ありがとうございます!

+0

任意のタイプおよび寸法のブランク画像と同じエラー、画像= sitk.Image(256、128、64、sitk.sitkInt16) image_bfc = sitk.N4BiasFieldCorrection(映像、画像) – SeF

答えて

1

ここに本当の問題があります。ここでの「マスク」は8ビットまたはバイナリである必要があります。したがって、マスクを得るために背景をスレッシュアウトすることができる場合は、BinaryThreshold sitkのフィル​​タを使用することができます。

+0

あなたは今私の答えを受け入れることができますか? –

+0

はい!!!! img_mask = sitk.Cast(img_mask、sitk.sitkInt8) – SeF

0

私の質問に答えて、私は、発生したエラーは実際の原因に関連していないようです。マスクがしきい値を用いて

として
bth = sitk.BinaryThresholdImageFilter() 
img_bin = bth.Execute(img) 
img_bin = -1 * (img_mask - 1) 

im_bfc = sitk.N4BiasFieldCorrection(im, img_bin) 

となり、アルゴリズムが動作し、エラーは発生しません。 - 問題の本当の原因が見つかった場合は更新されます。

+1

としてIは悪童データセットを使用しています、これはMRI用の.mhaファイルを持っています。あなたのソリューションは私の問題を解決しませんでした。これは実際にはあなたの問題と似ています。 –

関連する問題