//快速傅利葉變換
void fft2image(inputarray _src, outputarray _dst)
//求傅利葉變換的幅度譜 amplitude spectrum
void amplitudespectrum(inputarray _srcfft, outputarray _dstspectrum)
//傅利葉譜的灰度級顯示
mat grayspectrum(mat spectrum)
//求相位譜 phase spectrum
mat phasespectrum(mat _srcfft)
} return phase;
}//帶通
//帶通濾波的種類(列舉型別:理想帶通濾波器,巴特沃斯帶通濾波器,高斯帶通濾波器)
enum bpfilter_type ;
//構建帶通濾波器
mat createbpfilter(size _size, point center, float _radius, float _bandwidth, int type, int n = 2)
} }//構造巴特沃斯帶通濾波器
if (type == bbp_filter)
}} //構造高斯帶通濾波
if (type == gbp_filter)
}} return _bpfilter;
}//帶通濾波器
mat bpfilter(mat &src, mat &f, point maxloc, int type, int radius, int bandwid)
} //帶通傅利葉變換的傅利葉譜
amplitudespectrum(f_bpfilter, fbpspectrum);
//帶通傅利葉譜的灰度級的顯示
fbpspectrum = grayspectrum(fbpspectrum);
/* -- 第
七、八步:對帶通傅利葉變換執行傅利葉逆變換,並只取實部 -- */
dft(f_bpfilter, result, dft_scale + dft_inverse + dft_real_output);
/* -- 第九步:同乘以(-1)^(x+y) -- */
for (int r = 0; r < result.rows; r++) }
//注意將結果轉換 cv_8u 型別
result.convertto(result, cv_8uc1, 1.0, 0);
/* -- 第十步:擷取左上部分,大小等於輸入影象的大小 --*/
result = result(rect(0, 0, src.cols, src.rows)).clone();
return result;
}void main()
} /* -- 第
三、四步:補零和快速傅利葉變換 -- */
mat f;//影象的快速傅利葉變換
fft2image(fi, f);
//傅利葉譜
mat amplspec;
amplitudespectrum(f, amplspec);
//傅利葉譜的灰度級顯示
mat spectrum = grayspectrum(amplspec);
//找到傅利葉譜的最大值的座標
point maxloc;
minmaxloc(spectrum, null, null, null, &maxloc);
mat result;
//低通
//result = lpfilter(image, f, maxloc, 0, 25);
//高通
//result = ihpfilter(image, f, maxloc, 0, 25);
//帶阻
//result = brfilter(image, f, maxloc, 0, 50, 40);
//帶通
頻率域濾波 2 高通濾波
快速傅利葉變換 void fft2image inputarray src,outputarray dst 求傅利葉變換的幅度譜 amplitude spectrum void amplitudespectrum inputarray srcfft,outputarray dstspectrum 傅...
頻率域濾波 5 自定義濾波
快速傅利葉變換 void fft2image inputarray src,outputarray dst 求傅利葉變換的幅度譜 amplitude spectrum void amplitudespectrum inputarray srcfft,outputarray dstspectrum 傅...
空間域 頻域 高通濾波 低通濾波
最近由於深度學習做影象,要看影象處理的知識,看了幾篇部落格,本文的圖和大部分的文字均來自於那些參考的部落格,在這把知識點總結了一下 通過 觀察灰度分布來描述一幅影象 稱為空間域 觀察影象變化的頻率被 稱為頻域。頻域濾波 是在頻率域對影象做處理的一種方法。步驟如下 濾波器大小和頻譜大小相同,相乘即可得...