Opencv離散傅利葉變換

2021-07-04 23:03:58 字數 1526 閱讀 5542

#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 頻域的取樣。在形式上,變換兩端 時域和頻域上 的序列是有限長的,而實際上這兩組序列都應當被認為是離散週期訊號的主值序列...