Пиксельные значения изображения в 2D двойном * указателе для расчета FFT_2D - PullRequest
1 голос
/ 22 июля 2011

Я хочу вычислить БПФ изображения, я читаю изображение, и ITK SmartPointer называется «imagen».Для ввода функции, которую я использую для вычисления FFT (fftw_plan_dft_r2c_2d), требуется двумерный двойной указатель * в качестве ввода.Из-за этого я делаю это:

double *in = (double*) imagen.GetPointer(); // conversión de itk.smartpointer --> double*.

Но когда я пытаюсь получить доступ к значениям пикселей изображения, они не определены. Тип пикселя 'image' является двойным:

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

ImageType::Pointer imagen;

И изображение читается из фрейма через пользовательский интерфейс, используя Qt:

imagen=ui.imageframe->imagereader;

Кто-нибудь может мне помочь с этим?Мне нужно иметь значения изображения в 2D двойном * указателе для расчета FFT.

Приветствия и спасибо за вашу помощь в продвинутом!

Антонио Гомес Баркеро

EDITED

Я решил мою проблему, эторазмещено ниже, но теперь проблема заключается в том, чтобы преобразовать результат в 2D-матрицу, не зная его второго измерения до времени выполнения, поскольку изображение загружается во время выполнения, а не во время компиляции, какие-либо советы?СПАСИБО!

РЕШЕНИЕ

double *in;
ImageType::IndexType pixelIndex;
ImageType::PixelType pixelValue;
    for ( int x = 0; x<ancho; x++){
        for (int y = 0; y<alto; y++){ 
            pixelIndex[0] = x; //x position
            pixelIndex[1] = y; //y position
            ImageType::PixelType pixel2 = imagen->GetPixel(pixelIndex);
            *(in+x*ancho+y) = static_cast <double> (imagen->GetPixel(pixelIndex));
        }
    }

1 Ответ

0 голосов
/ 24 сентября 2011

ITK также имеет БПФ.

Примером фреймворка является: http://www.vtk.org/Wiki/ITK/Examples/SpectralAnalysis/VnlFFTRealToComplexConjugateImageFilter

Существует еще один очень похожий вариант использования FFTW.Просто создайте ITK с включенным флагом USE_FFTW.(ПРИМЕЧАНИЕ. Параметр USE_FFTW находится в разделе «Расширенные настройки» при настройке шага настройки cmake.)

Из списка рассылки ITK: http://old.nabble.com/how-to-use-FFTW-with-ITK-td19531608.html

...