例一:利用小波分析给定一个二维含噪图像进行消噪处理
源程序如下:
clear all; %清楚所有变量
RGB=imread('5.bmp'); %读取MATLAB目录下的测试图片 名为:5.bmp
[x,map]=rgb2ind(RGB,128); %把真彩色图像RGB转换为索引图像
subplot(2,2,1);
image(x);
colormap(map);
title('原始的图像');
init=2055615866; %加入噪声
rand('seed',init);
X=double(x);
XX=X+randn(size(x))/10;
subplot(2,2,2);
image(XX);
colormap(map);
title('含噪声的图像');
[c,l]=wavedec2(XX,2,'sym5'); %进行小波分析
a1=wrcoef2('a',c,l,'sym5',1);
a2=wrcoef2('a',c,l,'sym5',2);
subplot(2,2,3);
image(a1);
colormap(map);
title('第一层的重构图像');
subplot(2,2,4);
image(a2);
colormap(map);
title('第二层的重构图像');
试验结果的图片:
例一:利用小波分析给定一个二维含噪图像进行消噪处理例二:利用二维小波变换给定图像进行小波消噪处理
例二:利用二维小波变换给定图像进行小波消噪处理
clear all
RGB=imread('5.bmp');
[x,map]=rgb2ind(RGB,128);
subplot(2,2,1);
image(x);
colormap(map);
title('原始图像');
init=2055615866;
rand('seed',init);
X=double(x);
XX=X+randn(size(x))/10;
subplot(2,2,2);
image(XX);
colormap(map);
title('含噪图像');
[c,l]=wavedec2(XX,3,'coif2');
n=[1,2];
p=[10.28,24.08];
%nc=wthcoef2('h',c,l,n,p,'s');
%nc=wthcoef2('v',c,l,n,p,'s');
nc=wthcoef2('d',c,l,n,p,'s');
X1=waverec2(nc,l,'coif2');
subplot(2,2,3);
image(X1);
colormap(map);
%mc=wthcoef2('h',nc,l,n,p,'s');
mc=wthcoef2('v',nc,l,n,p,'s');
%mc=wthcoef2('d',nc,l,n,p,'s');
X2=waverec2(mc,l,'coif2');
subplot(2,2,4);
image(X2);
colormap(map);
title('第二次消噪后的图像');