2011-07-06 34 views
0

我的問題是,我打開圖像從使用Qt(通過我創建IMAGEFRAME類的GUI,這個類定義了PixelType如下:問題的雙精度和智能指針在ITK

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

並提取圖像後,我會說謊做FFT輸入是真實的數據。 錯誤說:它不能將'itk :: SmartPointer'的第三個參數轉換爲'double *'with和object ImageFrame類(它已將像素類型定義爲double)

1>。\ prueba_r01.cpp(126):錯誤C2664: 'fftw_plan_dft_r2c_2d':無SE puede convertir ELparámetro3脫 'ITK ::智能指針' 一 '雙*'
1>使用
1> [
1> TObjectType = ITK ::圖片
1>]
1>無干草disponibleningúnoperador去轉換定義方EL usuario闕pueda realizar ESTA轉換,鄰邊沒有本質puede llamar人operador

現在我不明白爲什麼它不能如果像素是雙格式,則計算fft。 有沒有人可以給我一個如何解決這個問題的想法?提前謝謝大家!

+1

爲什麼人們都在倒計時?這個問題是絕對合法的 – CharlesB

回答

0

這是因爲image.Pointer()是一個智能指針對象,是指向數據的讀指針的包裝。您必須通過image.Pointer().GetPointer() fftw。

+0

如你所說那麼容易,在這麼簡單的事情中非常感謝你的時間,我非常感謝 – Antonio

+0

這樣做是不夠的,信息不知何故沒有數據雙指針*在此代碼之後:「double * in =(double *)imagen.GetPointer() – Antonio

1

要得到的像素數據(雙*),你需要使用

image->GetBufferPointer(); 

這將返回一個雙*,可以傳遞到FFTW。