频域滤波(一) 傅里叶谱与相位

ori_rec=imread('C:\Program Files\MATLAB\R2013a\bin\Original_Images\DIP3E_Original_Images_CH04\Fig0424(a)(rectangle).tif');
ori_rec=mat2gray(ori_rec(257:768,257:768)); % 归一化 转化为double 
fft_rec=fftshift(fft2(ori_rec)); % 矩形的傅里叶变换2D
phase_rec=angle(fft_rec);% 矩形的相位
rec_fre=abs(fft_rec);% 矩形的振幅
subplot(2,4,1),imshow(phase_rec,[]);title('ori rec phase 矩形的相位');
% figure,imshow(abs(fft_rec),[]),title('frequency img no log')
subplot(2,4,2),imshow(log(rec_fre+1),[]),title('frequency img  log 矩形的频谱') 
ori_woman=imread('C:\Program Files\MATLAB\R2013a\bin\Original_Images\DIP3E_Original_Images_CH04\woman.tif');
ori_woman=mat2gray(ori_woman);
subplot(2,4,3),imshow(ori_woman,[]);title('女人原图')
fft2_woman=fftshift(fft2(ori_woman));
phase_woman=angle(fft2_woman);  % 女人的相位
woman_fre=abs(fft2_woman);      %女人的振幅
subplot(2,4,4),imshow(log(woman_fre)+1,[]),title('frequency img woman')
subplot(2,4,7),imshow(phase_woman,[]),title('女人的相位')
ifft_womon_phase=ifft2(exp(1j.*phase_woman));
subplot(2,4,5),imshow(log(real(ifft_womon_phase))+1,[]);title('只用女人的相位重建的图像')
ifft_img=ifftshift(ifft2(woman_fre));
subplot(2,4,6),imshow(log(real(ifft_img))+1,[]),title('只用女人的振幅重建的图像')
rec_fre_woman_phase=ifft2(rec_fre.*exp(1j*phase_woman));
rec_phase_woman_fre=ifft2(woman_fre.*exp(1j*phase_rec));
subplot(2,4,8),imshow(log(real(rec_phase_woman_fre))+1,[]);title('用矩形相位和女人的振幅重建的图像')
figure,imshow(real(rec_fre_woman_phase),[]);title('用woman相位和矩形振幅重建的图像')
figure,imshow(ori_rec,[]);title('矩形原图')

频域滤波(一) 傅里叶谱与相位_第1张图片频域滤波(一) 傅里叶谱与相位_第2张图片

频域滤波(一) 傅里叶谱与相位_第3张图片

ps: 物体的相位对成像有着关键性的影响,相位决定了物体的形状,换句话说相位信息决定了这个是什么物体,尤其是在晶体学解析中相位信息非常重要,但是相位现在无法测量,只能测量振幅,不过现在有一种相位迭代恢复算法,可以恢复相位。迭代算法非常奇妙,如在分形学中简单的公式加上限制条件,就可以产生非常奇妙的图像·····这个世界是如此的简单(简单的公式描述),又是如此的复杂(反复的迭代),令人惊叹不已。

你可能感兴趣的:(图像处理,matlab)