简单的求取下灰度图像的幅度谱和相位谱并进行双谱重构:
直接上代码:
clear all Picture = imread('E:\others\Picture\Library.jpg'); Picture_Gray = rgb2gray(Picture);%灰度处理 Picture_FFT = fft2(Picture_Gray);%傅里叶变换 Picture_FFT_Shift = fftshift(Picture_FFT);%对频谱进行移动,是0频率点在中心 Picture_AM_Spectrum = log(abs(Picture_FFT_Shift));%获得傅里叶变换的幅度谱 Picture_Phase_Specture = log(angle(Picture_FFT_Shift)*180/pi);%获得傅里叶变换的相位谱 Picture_Restructure = ifft2(abs(Picture_FFT).*exp(j*(angle(Picture_FFT))));%双谱重构 figure(1) subplot(221) imshow(Picture_Gray) title('原图像') subplot(222) imshow(Picture_AM_Spectrum,[])%显示图像的幅度谱,参数'[]'是为了将其值线性拉伸 title('图像幅度谱') subplot(223) imshow(Picture_Phase_Specture,[]); title('图像相位谱') subplot(224) imshow(Picture_Restructure,[]); title('双谱重构图')
图像的幅度谱代表的是图像各像素点的亮度信息,即该像素应该显示什么颜色,但是做出来的幅度谱却不知道每一点在原图像中具体是哪一点,即幅度谱虽然存储了各个像素点的幅值信息,但是原像素点的位置已经被打乱,所以仅凭幅度谱是没有办法重构原图像的。幅度谱的中心是低频部分,越亮的地方代表的幅度越大。幅度谱中“十”字形亮线表示原图像中水平和垂直方向的分量较其他方向要多,因为在人们周围的自然场景中水平和垂直的线条出现的可能性较大。
来看下仅有幅度谱重构出来的原图像:
Picture_Restructure = ifft2(abs(Picture_FFT));%幅度谱重构
可以看到仅有幅度谱重构出来的图像啥也不是,,,
而相位谱记录的是所有点的相位信息,看起来相位谱是一团噪声,这也说明相位信息是以一种更为隐蔽的方式出现在人们面前的,但它非常重要,因为相位信息中携带者图像的位置信息,没有它将无法从品频谱还原出原图像。
相位谱重构原图像:
Picture_Restructure = ifft2(exp(j*(angle(Picture_FFT))));%相位谱重构
可以看到仅有相位谱重构出来的图像还是可以看到一些轮廓信息的,利用相位谱记录的位置信息和幅度谱记录的亮度信息,就可以用双谱重构的方法恢复出原图像。
————————————————
版权声明:本文为CSDN博主「逸凌123」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36554582/article/details/88701865