資源描述:
《《圖像頻域分析》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第四章頻域處理1、本章所有的濾波都是通過傅里葉變換在頻域中實現(xiàn)的。2、這一章的重點關(guān)注的是如何在matlab中實現(xiàn)頻域濾波。3、這一章中我們將舉例說明在圖像增強(qiáng)中的頻域濾波,包括低通濾波、基本的高通濾波和高頻強(qiáng)調(diào)濾波。4、1二維離散傅里葉變換1、二維離散傅里葉變換2、二維離散傅里葉逆變換3、傅里葉頻譜(直觀的分析一個變換的主要方法是計算它的頻譜即F(u,v)的幅度4、1二維離散傅里葉變換4、1二維離散傅里葉變換4、2在MATLAB中計算可視化二維DFT1、快速傅里葉變換F=fft2(f)該函數(shù)將返回一個大小仍為
2、M*N的傅里葉變換,數(shù)據(jù)排列的形式仍為原點在左上角,而四個四分之一周期交匯于頻率矩形的中心。2、使用傅里葉變換進(jìn)行濾波時,需要對輸入數(shù)據(jù)進(jìn)行零填充。F=fft2(f,P,Q).3、傅里葉頻譜可以使用函數(shù)S=abs(F)在這里我們知道通過顯示頻譜的圖像來進(jìn)行可視化分析是頻域處理的一個重要方面。4、2在MATLAB中計算可視化二維DFT4、將變換的原點移動到頻率矩形的中心。Fc=fftshift(F)5、iffshift用于顛倒這種居中。6、ifft2(F)用于計算傅里葉逆變換。>>f=imread('Fig040
3、3(a)(image).tif');>>imshow(f)>>F=fft2(f);>>S=abs(F);>>imshow(S,[])>>Fc=fftshift(F);>>imshow(abs(Fc),[])>>S2=log(1+abs(Fc));>>imshow(S2,[])4、3頻域濾波將簡單的介紹頻域濾波的概念以及如何使用MATLAB來實現(xiàn)頻域濾波。4、3、1基本概念空間域和頻域線性濾波的基礎(chǔ)都是卷積定理:f(x,y)*h(x,y)←→H(u,v)F(u,v)f(x,y)h(x,y)←→H(u,v)*F(u
4、,v)雙箭頭兩邊的表達(dá)式組成了傅里葉變換對。兩個空間函數(shù)的卷積可以通過計算兩個傅里葉變換函數(shù)的乘積的逆變換得到。相反地,兩個空間函數(shù)的卷積的傅里葉變換恰好等于兩個函數(shù)的傅里葉變換的乘積。4、3頻域濾波基本上,頻域濾波的目的是:選擇一個濾波器傳遞函數(shù),以便按照指定的方式修改F(u,v)?;诰矸e理論,我們知道為了在空間域中得到相應(yīng)的濾波后的圖像,僅需要計算積H(u,v)F(u,v)。4.3.2DFT的基本步驟1、使用函數(shù)paddedsize獲得填充參數(shù):PQ=paddedsize(size(f));2、得到使用填
5、充的傅里葉變換:F=fft2(f,PQ(1),PQ(2));3、生成一個大小為PQ(1)*PQ(2)的濾波函數(shù)H;4、將變換乘以濾波函數(shù):G=H.*F;5、獲得G的傅里葉逆變換的實部:g=real(ifft2(G));6、將左上角的矩形修剪為原始大小:g=g(1:size(f,1):size(f,1))4、4從空間濾波器獲得頻域濾波器函數(shù)freqz2:H=freqz2(h,R,C)其中h是一個二維的空間濾波器,H是相應(yīng)的頻域濾波器。使用方法見下面的例子:>>f=imread('Fig0409(a)(bld).t
6、if');>>imshow(f)>>F=fft2(f);>>S=fftshift(log(1+abs(F)));>>S=gscale(S);>>imshow(S)>>h=fspecial('sobel')h=121000-1-2-1freqz2(h)>>H=freqz2(h,PQ(1),PQ(2));>>H1=ifftshift(H);>>imshow(abs(H),[])>>figure,imshow(abs(H1),[])>>gs=imfilter(double(f),h);>>gf=dftfilt(f,H
7、1);Imshow(gs,[])>>imshow(gs,[])>>figure,imshow(abs(gs),[])>>figure,imshow(abs(gf),[])4、5在頻域中直接生成濾波器4、5、1函數(shù)dftuv提供了距離計算及其類型應(yīng)用所需要的網(wǎng)格數(shù)組。4、5、2低通頻域濾波器1、理想低通濾波器ILPF2、n階巴特沃茲低通濾波器3、高斯低通濾波器例:低通濾波器f=imread('Fig0413(a)(original_test_pattern).tif');imshow(f)PQ=paddedsiz
8、e(size(f));[u,v]=dftuv(PQ(1),PQ(2));D0=0.05*PQ(2);F=fft(f,PQ(1),PQ(2));H=exp(-(U.^2+V.^2)/(2*(D0^2)));g=dftfilt(f,H);figure,imshow(fftshift(H),[])figure,imshow(log(1+abs(fftshift(F))),[])figure,