实验二-图像小波变换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小波变换及应用-实验二

实验要求:

对图像进行二维离散小波变换,变换级数大于等于3级,然后进行阈值化处理(阈值约为10左右),在统计系数中0的个数(百分比表示)并进行重构,最后计算重构图像的峰值信噪比(PSNR)。

实验内容:

>> x=imread('lena.bmp'); %从Workspace看到文件已经是256*256的规范文件subplot(3,3,1);imshow(x);

title('原图');

x=double(x); %将图像矩阵的uint8类型元素,转换为double型

[c,s]=wavedec2(x,3,'sym4');%使用小波函数sym4对二维信号进行3层分解

thr=10;%设置阈值为10

xc=wdencmp('gbl',x,'sym4',3,thr,'h',1);%全局阈值去噪

>> subplot(332),imshow(uint8(xc));

title('全局阈值去噪');

% 系数c含有71542个元素,都是小数。为此,进行取整,得到C

>> C=round(c(:));%对c取整,得到C

>> sum(C(:)==0)%统计C中0的个数

ans=12751;

a1=wrcoef2('a',c,s,'sym4',1);%提取小波分解中第一层的低频图像,实现了低通滤波

a2=wrcoef2('a',c,s,'sym4',2);%提取小波分解中第二层的低频图像,实现了低通滤波

a3=wrcoef2('a',c,s,'sym4',3);%提取小波分解中第三层的低频图像,实现了低通滤波subplot(332),imshow(uint8(a1));%显示第一次低通滤波后的图像a1

subplot(333),imshow(uint8(a2));%显示第一次低通滤波后的图像a2

subplot(334),imshow(uint8(a3));%显示第一次低通滤波后的图像a3

%构造信噪比公式

function [PSNR,mse] = psnr(X,Y)

if nargin<2,D=X;

else

if any(size(X)~=size(Y)),error('');end

D=X-Y;

end

mse=sum(D(:).*D(:))/prod(size(X));

PSNR=10*log10(255^2/mse);

%带入两个图像矩阵,计算去噪后图像的信噪比

>> PSNR=psnr(xc,x); %PSNR=39.063057357916660

相关文档
最新文档