-2
我一直在找一個關於FFT的開放C++代碼。我想用FFT處理圖像,我寫了一個代碼,但是我的代碼速度並不快,即使如此緩慢。 我用四個for循環寫了它,它的效率並不高。關鍵是,有沒有人可以幫助我。我完全搜索了互聯網,但我無法在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函數被關閉,這是我無法修改的方式。 –