Проблема с двойной точностью и умным указателем в ITK - PullRequest
0 голосов
/ 06 июля 2011

У меня проблема в том, что я открываю Image из GUI, используя Qt (через класс, который я создал ImageFrame, этот класс определил PixelType следующим образом:

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

и после извлеченияизображение, я бы соврал, чтобы сделать БПФ, входные данные которого являются реальными данными. Ошибка говорит: он не может быть преобразован третий параметр 'itk :: SmartPointer' в 'double *' с и объект класса ImageFrame (который определилpixeltype как double).

1>. \ prueba_r01.cpp (126): ошибка C2664: 'fftw_plan_dft_r2c_2d': нет конвертирования в 3-й части itk :: SmartPointer 'a' double *'
1> с
1> [
1> TObjectType = itk :: Image
1>]
1> Нет сено, бесчестноРазговор, о том, что я не знаю, что такое llamar al operador

Теперь я не могу понять, почему он не может вычислить fft, если пиксель в двойном формате. Кто-нибудь может дать мне представление о том, как решить эту проблему?? Спасибо всем большое заранее!

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Чтобы получить данные о пикселях (двойной *), вам нужно использовать

image->GetBufferPointer();

Это вернет двойной *, который может быть передан в FFTW.

0 голосов
/ 06 июля 2011

Это потому, что image.Pointer() - это объект интеллектуального указателя, обертка вокруг указателя чтения ваших данных. Вы должны передать image.Pointer().GetPointer() в FFTW.

...