0
使用以下代碼生成使用FFTW和OpenCV進行傅里葉變換的可視化。但是,我只能正確獲取圖像的上半部分。 任何人都可以解釋,如果代碼有問題嗎?fft使用fftw和opencv進行可視化
fft存儲fftw_execute數據。
int nl= fftvis->height; // number of lines
// total number of element per line
int nc= fftvis->width * fftvis->nChannels;
// get the pointer to the image buffer
unsigned char *data= reinterpret_cast<unsigned char *>
(fftvis->imageData);
k =0;
for (int x=1; x<nl; x++) {
for (int y=0; y<nc; y+= fftvis->nChannels) {
data[y] = 10*log(sqrt((pow(fft[k++][0],2) + pow(fft[k++][1],2))));
//k+=1;
} // end of line
data+= step;
// next line
}
你在哪裏打電話給fftw?你使用哪些fftw功能? – CookieOfFortune
就在調用fftw_execute的代碼塊之前,數據存儲在「fft」中。我試圖想象傅里葉變換的幅度。 –
您使用哪種fftw計劃?你有正確的數據大小對齊嗎?你在雙打上做fftw,然後顯示花車嗎? – CookieOfFortune