小波在图像处理中的应用
基于小波的不同方法的图像去噪
基于不同的原理,小波去噪去相同图像有什么影响
结论:
close all; clear all;clc;
load gatlin2; %装载并显示原始图像
init=2055615866; %生成含噪图象并显示
randn('seed',init)
XX=X+2*randn(size(X));
[c,l]=wavedec2(XX,2,'sym4'); %对图像进行消噪处理,用 sym4 小波函数对 x 进行两层分解
a2=wrcoef2('a',c,l,'sym4',2); %重构第二层图像的近似系数
n=[1,2]; %设置尺度向量
p=[10.28,24.08]; %设置阈值向量
nc=wthcoef2('t',c,l,n,p,'s'); %对高频小波系数进行阈值处理
mc=wthcoef2('t',nc,l,n,p,'s'); %再次对高频小波系数进行阈值处理
X2=waverec2(mc,l,'sym4'); %图像的二维小波重构
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
figure % 显示原图像及处理以后结果
colormap(map)
subplot(131),image(XX),axis square;
subplot(132),image(a2),axis square;
subplot(133),image(X2),axis square;
Ps=sum(sum((X-mean(mean(X))).^2)); %计算信噪比
Pn=sum(sum((a2-X).^2));
disp('利用小波 2 层分解去噪的信噪比')
snr1=10*log10(Ps/Pn)
disp('利用小波阈值去噪的信噪比')
Pn1=sum(sum((X2-X).^2));
snr2=10*log10(Ps/Pn1)
采用相同的方法,母小波不同的情况下,小波阈值去噪效果有什么变化
结论:
close all; clear all;clc;
load flujet; %装载并显示原始图像
init=2055615866; %生成含噪声图像并显示
XX=X+8*randn(size(X));
n=[1,2]; %设置尺度向量
p=[10.28,24.08]; %设置阈值向量
[c,l]=wavedec2(XX,2,'db2'); %用小波函数 db2 对图像 XX 进行 2 层分解
nc=wthcoef2('t',c,l,n,p,'s'); %对高频小波系数进行阈值处理
mc=wthcoef2('t',nc,l,n,p,'s'); %再次对高频小波系数进行阈值处理
X2=waverec2(mc,l,'db2'); %图像的二维小波重构
[c1,l1]=wavedec2(XX,2,'sym4'); %首先用小波函数sym4对图像XX进行2层分解
nc1=wthcoef2('t',c1,l1,n,p,'s'); %对高频小波系数进行阈值处理
mc1=wthcoef2('t',nc1,l1,n,p,'s'); %再次对高频小波系数进行阈值处理
X3=waverec2(mc1,l1,'sym4'); %图像的二维小波重构
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
figure %显示原图像及处理以后结果
colormap(map)
subplot(121);image(X);axis square;
subplot(122);image(XX);axis square;
figure
colormap(map)
subplot(121);image(X2);axis square;
subplot(122);image(X3);axis square;
Ps=sum(sum((X-mean(mean(X))).^2)); %计算信噪比
Pn=sum(sum((XX-X).^2));
Pn1=sum(sum((X2-X).^2));
Pn2=sum(sum((X3-X).^2));
disp('未处理的含噪声图像信噪比')
snr=10*log10(Ps/Pn)
disp('采用 db2 进行小波去噪的图像信噪比')
snr1=10*log10(Ps/Pn1)
disp('采用 sym4 进行小波去噪的图像信噪比')
snr2=10*log10(Ps/Pn2)
基于小波的频域滤波和时域滤波,对图像有什么影响
结论:
close all; clear all;clc;
X=imread('6.bmp'); %把原图象转化为灰度图像,装载并显示
X=double(rgb2gray(X));
init=2055615866; %生成含噪图象并显示
randn('seed',init)
X1=X+25*randn(size(X)); %生成含噪图像并显示
[thr,sorh,keepapp]=ddencmp('den','wv',X1); %消噪处理:设置函数 wpdencmp 的消噪参数
X2=wdencmp('gbl',X1,'sym4',2,thr,sorh,keepapp);
X3=X; %保存纯净的原图像
for i=2:577;
for j=2:579
MATLAB 图像处理实例详解
113
Xtemp=0;
for m=1:3
for n=1:3
Xtemp=Xtemp+X1((i+m)-2,(j+n)-2);%对图像进行平滑处理以增强消
噪效果(中值滤波)
end
end
Xtemp=Xtemp/9;
X3(i-1,j-1)=Xtemp;
end
end
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
figure
subplot(121);imshow(uint8(X)); axis square; %画出原图象
subplot(122);imshow(uint8(X1));axis square; %画出含噪声图象
figure
subplot(121),imshow(uint8(X2)),axis square; %画出消噪后的图像
subplot(122),imshow(uint8(X3)),axis square; %显示结果
Ps=sum(sum((X-mean(mean(X))).^2)); %计算信噪比
Pn=sum(sum((X1-X).^2));
Pn1=sum(sum((X2-X).^2));
Pn2=sum(sum((X3-X).^2));
disp('未处理的含噪声图像信噪比')
snr=10*log10(Ps/Pn)
disp('采用小波全局阈值滤波的去噪图像信噪比')
snr1=10*log10(Ps/Pn1)
disp('采用中值滤波的去噪图像信噪比')
snr2=10*log10(Ps/Pn2)