#include#include#includeusing namespace std;
using namespace cv;
int main()
; mat compleximage;
merge(plannes, 2, compleximage);
//進行離散傅利葉變換
dft(compleximage, compleximage);
//對計算計算出來的複數 求 幅值
split(compleximage, plannes);
//將結果儲存在mat 型別的變數 中
mat magnitudeimage;
magnitude(plannes[0], plannes[1], magnitudeimage);
//為了顯示出幅值,進行以下操作
//1、進行對數尺度縮放
magnitudeimage += scalar::all(1);
log(magnitudeimage, magnitudeimage);
//2、之前的步驟中,對影象進行了擴充套件,現在,需要將擴充套件的截去
magnitudeimage = magnitudeimage(rect(0, 0, magnitudeimage.cols & -2, magnitudeimage.rows & -2));
//3、重新分布幅度圖 象限
//中心
int center_x = magnitudeimage.cols / 2;
int center_y = magnitudeimage.rows / 2;
//定義象限
mat q0 = magnitudeimage(rect(0, 0, center_x, center_y));
mat q1 = magnitudeimage(rect(center_x, 0, center_x, center_y));
mat q2 = magnitudeimage(rect(0, center_y, center_x, center_y));
mat q3 = magnitudeimage(rect(center_x, center_y, center_x, center_y));
//4、交換象限
mat temp;
q0.copyto(temp);
q3.copyto(q0);
temp.copyto(q3);
q1.copyto(temp);
q2.copyto(q1);
temp.copyto(q2);
//5、歸一化處理
normalize(magnitudeimage, magnitudeimage, 0, 1, cv_minmax);
imshow("【傅利葉變換】", magnitudeimage);
opencv之離散傅利葉變換
c intgetoptimaldftsize intvecsize int cv getoptimaldftsize int size0 returnoptimaldftsizetab b optimaldftsizetab定義在namespace cv中,裡邊的數值為2 x 3 y 5 z sta...
OpenCV入門 離散的傅利葉變換
傅利葉變換 是指將影象拆解成正弦與余弦元素,也就是將圖由空間性轉換為頻率性。int getoptimaldftsize int vecsize 由輸入的向量大小取得最佳的dft 離散的傅利葉變換 大小 vecsize 輸入的向量大小 copymakeborder inputarray src,out...
opencv 19 離散傅利葉變換
離散傅利葉變換 discrete founer transform,縮寫為dft 是指傅利葉變換在時域和頻域上都呈現離散的形式,將時域訊號的取樣變換為在離散時間傅利葉變換 dtft 頻域的取樣。在形式上,變換兩端 時域和頻域上 的序列是有限長的,而實際上這兩組序列都應當被認為是離散週期訊號的主值序列...