Я искал открытый код C++ о БПФ. Я хочу обработать изображение с помощью FFT, и я написал код, но мой код не быстрый, даже настолько медленный. Я написал его, используя четыре цикла, так как это не эффективно. Дело в том, есть ли кто-нибудь, кто может мне помочь. Я полностью искал Интернет, но я не смог найти какой-либо документ или файл кода в C++. Я НЕ хочу иметь предварительно написанный код любой lib. Вот, пожалуйста, покажите мне сайт, и я могу написать свой код. Мой код здесь;Быстрый код преобразования Фурье в C++
void NaiveDFT::Apply(Image & img)
{
complex<double> dft[512][512];
for(unsigned u = 0; u < img.rows; ++u)
{
for(unsigned v = 0; v < img.cols; ++v)
{
std::complex<double> sum = 0;
for(unsigned x = 0; x < img.rows; ++x)
{
for(unsigned y = 0; y < img.cols; ++y)
{
std::complex<double> i = sqrt(std::complex<double>(-1));
std::complex<double> theta = 2 * M_PI * (((u * x)/img.GetWidth()) + ((v * y)/img.cols));
sum += std::complex<double>(img.at<uchar>(i, j)[0]) * cos(theta) + (-i * sin(theta));
//sum += std::complex<double>(std::complex<double>(imgData[x][y]._red) * pow(EULER, -i * theta));
}
}
dftData[u][v] = (sum.imag()/(img.GetWidth() * img.GetHeight()));
}
}
}
Сообщение код более на [Обзор] Код (Http: // codereview.stackexchange.com/), и вам может помочь. –
для fft вообще попробуйте 'fftw' и для fft на изображении попробуйте' opencv' – Azad
Ваши ссылки были посещены. Я обыскал их уже. Я хочу открыть код, и я хочу их изменить. opencv-функции закрыты, поэтому я не могу изменить. –