Совместное использование BOOST::UBLAS и FFTW для обработки изображений

Есть ли возможность использовать буст-матрицу по FFTW? Если так, то как ты это делаешь? что у меня в основном есть

QPixmap pixmap("lena.bmp");
// resize input image
pixmap = pixmap.copy(512,512,128,128);
pixmap = pixmap.scaled(128,128);
QImage image = pixmap.toImage();
QRgb col;

int g;
int width = pixmap.width();
int height = pixmap.height();
matrix<double> m(width,height);
for (int j = 0; j < m.size2(); j++)
{
    for (int i = 0; i < m.size1(); i++)
    {
        m(i,j) = 0;

        m(i,j) = qGray(image.pixel(i,j));

    }
}

Я хочу выполнить FFTW на матрице «m», а затем повторно отобразить fft изображения. Как мне это сделать?


person user3275596    schedule 22.08.2014    source источник


Ответы (1)


вы можете сначала прочитать свое изображение в массив, затем применить FFTW в соответствии с вашими потребностями к этому массиву, а затем заполнить этот массив в матрице boost ublas, а затем использовать его.

int a[width][height];
for (int j = 0; j < width; j++)
{
    for (int i = 0; i < height; i++)
    {
    a[i][j] = qGray(image.pixel(i,j));

    }
}
//apply fftw

matrix<double> m(width,height);
for (int j = 0; j < width; j++)
{
    for (int i = 0; i < height; i++)
    {
    m(i,j) = fft_a[i][j];

    }
}

Я надеюсь, что это работает

person serpentor    schedule 25.08.2014