图像稀疏域变换及重建MATLAB仿真

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

`在实际生活中为了获得高分辨率、高质量的图像需要对测量目标进行全采样,导致产生大量的数据量和耗时操作,时常会因为采集不到足够多的测量值从而导致图像质量不好。根据数据冗余的原理,压缩感知方法成为解决这一问题的重要突破口,通过对信号的稀疏表示,获得测量矩阵,测量矩阵以远小于Nyquist采样定理要求的采样数,获得测量值,再结合测量矩阵和稀疏基组成的恢复矩阵,求解出待测信号。

一、图像进行稀疏变换

稀疏域一般包含傅里叶域、Z域、拉普拉斯域等,本文将以傅里叶域为例对一个二维图像进行稀疏变换域重建。

clear all
Picture = imread('D:\CS实验\orignal.png');

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);%获得傅里叶变换的相位谱

二、利用幅度谱和相位谱重建图像

1.利用幅度谱和相位谱重建图像

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('双谱重构图')

2.运行结果

运行结果


总结

图像的幅度谱代表的是图像各像素点的亮度信息,即该像素应该显示什么颜色,但是做出来的幅度谱却不知道每一点在原图像中具体是哪一点,即幅度谱虽然存储了各个像素点的幅值信息,但是原像素点的位置已经被打乱,所以仅凭幅度谱是没有办法重构原图像的。幅度谱的中心是低频部分,越亮的地方代表的幅度越大。幅度谱中“十”字形亮线表示原图像中水平和垂直方向的分量较其他方向要多,因为在人们周围的自然场景中水平和垂直的线条出现的可能性较大。
来看下仅有幅度谱重构出来的原图像:

Picture_Restructure = ifft2(abs(Picture_FFT));%幅度谱重构

仅幅度谱重构图像
可以看到仅有幅度谱重构出来的图像啥也不是,,,

而相位谱记录的是所有点的相位信息,看起来相位谱是一团噪声,这也说明相位信息是以一种更为隐蔽的方式出现在人们面前的,但它非常重要,因为相位信息中携带者图像的位置信息,没有它将无法从品频谱还原出原图像。
相位谱重构原图像:

Picture_Restructure = abs(ifft2(exp(j*(angle(Picture_FFT)))));%相位谱重构

纯相位谱恢复图像

重点参考:https://blog.csdn.net/qq_36554582/article/details/88701865

猜你喜欢

转载自blog.csdn.net/code_Joe123/article/details/124142884