圖像的變換
1. 離散傅立葉變換的 Matlab實(shí)現(xiàn)
Matlab 函數(shù) fft、fft2 和 fftn 分別可以實(shí)現(xiàn)一維、二維和 N 維 DFT算法;這些函數(shù)的調(diào)用格式如下:
A=fft(X,N,DIM)
其中,X 表示輸入圖像;
N 表示采樣間隔點(diǎn),如果 X 小于該數(shù)值,那么 Matlab 將會(huì)對(duì) X 進(jìn)行零填充,
否則將進(jìn)行截取,使之長度為 N ;
DIM 表示要進(jìn)行離散傅立葉變換。
A=fft2(X,MROWS,NCOLS)
其中,MROWS 和 NCOLS 指定對(duì) X 進(jìn)行零填充后的 X 大小。
A=fftn(X,SIZE)
其中,SIZE 是一個(gè)向量,它們每一個(gè)元素都將指定 X 相應(yīng)維進(jìn)行零填充后的長度。
2.離散傅立葉反變換的 Matlab實(shí)現(xiàn)
Matlab 函數(shù) ifft、ifft2 和 ifftn 則用來計(jì)算反 DFT 。函數(shù) ifft、ifft2 和ifftn的調(diào)用格式于對(duì)應(yīng)的離散傅立葉變換函數(shù)一致。
例子:圖像的二維傅立葉頻譜
% 讀入原始圖像
img=imread('rabbit_0.bmp');
I=rgb2gray(img);imshow(I)
% 求離散傅立葉頻譜
J=fftshift(fft2(I));
K=log(abs(J));
figure;
subplot(1,2,1);imshow(img,[]);
subplot(1,2,2);imshow(K,[]);
六. 舉例
i=imread('e:\w01.tif');
figure(1);
imshow(i);
colorbar;
j=fft2(i);
k=fftshift(j);
figure(2);
l=log(abs(k));
imshow(l,[]);
colorbar
n=ifft2(j)/255;
figure(3);
imshow(n);
colorbar;
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。