0

私が抱えている問題は、Qtを使用してGUIから画像を開くことです(ImageFrameを作成したクラスを通じて、このクラスはPixelTypeを次のように定義しています。

typedef double PixelType;
typedef itk::Image<PixelType,2> ImageType;

画像を抽出した後、入力が実際のデータであるFFTを作成することになります。エラーは次のように述べています。ImageFrameクラス(ピクセルタイプをdoubleとして定義している)のオブジェクトを使用して、「itk::SmartPointer」の3番目のパラメーターを「double*」に変換することはできません。

1>。\prueba_r01.cpp(126):エラーC2664:'fftw_plan_dft_r2c_2d':no sepuedeconvertirelparámetro3de'itk:: SmartPointer' a'double *'
1> with
1> [
1> TObjectType = itk ::画像
1>]
1>干し草なしdisponibleningúnoperadordeconversióndefinipodorelusuario que pueda realizarestaconversión、o bien no se puede llamar al operador

ピクセルがdouble形式の場合、なぜfftを計算できないのか理解できません。誰かが私にこの問題を解決する方法のアイデアを与えることができますか?よろしくお願いします!

4

2 に答える 2

1

To get the pixel data (a double*), you need to use

image->GetBufferPointer();

This will return a double*, that can be passed into FFTW.

于 2011-09-22T21:03:56.933 に答える
0

これは、image.Pointer()がスマートポインターオブジェクトであり、データへの読み取りポインターのラッパーであるためです。image.Pointer().GetPointer()fftwに渡す必要があります。

于 2011-07-06T13:12:10.473 に答える