基于小波变换的医学超声图像去噪方法研究程序.docx
《基于小波变换的医学超声图像去噪方法研究程序.docx》由会员分享,可在线阅读,更多相关《基于小波变换的医学超声图像去噪方法研究程序.docx(23页珍藏版)》请在冰点文库上搜索。
![基于小波变换的医学超声图像去噪方法研究程序.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/512c775b-d146-416b-b448-11aa50cff574/512c775b-d146-416b-b448-11aa50cff5741.gif)
基于小波变换的医学超声图像去噪方法研究程序
I=imread('xian.bmp');
subplot(2,2,1);
imshow(I);
title('原始图像');
>>if~isempty(size(I,3))
y=rgb2gray(I);
end
>>subplot(2,2,2);
>>imshow(y);
>>title('原始灰度图像');
>>J=imnoise(y,'speckle');
>>subplot(2,2,3);
>>imshow(J);
>>title('加噪后的图像');
>>J=double(J);
>>A=log(1+J);
>>subplot(2,2,4);
>>imshow(A,[]);
>>title('对数变换后的图像');
I=imread('xian.bmp');
if~isempty(size(I,3))
y=rgb2gray(I);
end
subplot(2,2,1);
imshow(y);
title('原始灰度图像');
J=imnoise(y,'speckle');
subplot(2,2,2);
imshow(J);
title('加噪后的图像');
[m,n]=size(J);
J=double(J);
k1=filter2(fspecial('average',3),J)/255;%3*3均值滤波
k2=filter2(fspecial('average',7),J)/255;%7*7均值滤波
subplot(2,2,3);
imshow(k1,[]);
title('3*3均值滤波');
subplot(2,2,4);
imshow(k2,[]);
title('7*7均值滤波');
[PSNR1,MSE1]=psnr(y,k1);
[PSNR2,MSE2]=psnr(y,k2);
display('MSE1:
');
MSE1
display('PSNR1:
');
PSNR1
display('MSE2:
');
MSE2
display('PSNR2:
');
PSNR2
MSE1:
MSE1=
1.0948e+004
PSNR1:
PSNR1=
7.7376
MSE2:
MSE2=
1.0948e+004
PSNR2:
PSNR2=
7.7373
I=imread('xian.bmp');
if~isempty(size(I,3))
y=rgb2gray(I);
end
subplot(2,2,1);
imshow(y);
title('原始灰度图像');
J=imnoise(y,'speckle');
subplot(2,2,2);
imshow(J);
title('加噪后的图像');
[m,n]=size(J);
J=double(J);
x1=medfilt2(J,[33]);%3*3中值滤波
x2=medfilt2(J,[77]);%7*7中值滤波
subplot(2,2,3);
imshow(x1,[]);
title('3*3中值滤波');
subplot(2,2,4);
imshow(x2,[]);
title('7*7中值滤波');
[PSNR1,MSE1]=psnr(y,x1);
[PSNR2,MSE2]=psnr(y,x2);
display('MSE1:
');
MSE1
display('PSNR1:
');
PSNR1
display('MSE2:
');
MSE2
display('PSNR2:
');
PSNR2
MSE1:
MSE1=
156.7310
PSNR1:
PSNR1=
26.1793
MSE2:
MSE2=
99.1610
PSNR2:
PSNR2=
28.1674
closeall;
clc
I=imread('xian.bmp');
if~isempty(size(I,3))
y=rgb2gray(I);
end
J=imnoise(y,'speckle');
[m,n]=size(J);
J=double(J);
c1=wiener2(J,[33]);%3*3维纳滤波
c2=wiener2(J,[77]);%7*7维纳滤波
figure;
subplot(2,2,1);
imshow(y,[]);
title('原始灰度图像');
subplot(2,2,2);
imshow(J,[]);
title('加噪后的图像');
subplot(2,2,3);
imshow(c1,[]);
title('3*3维纳滤波');
subplot(2,2,4);
imshow(c2,[]);
title('7*7维纳滤波');
[PSNR1,MSE1]=psnr(y,c1);
[PSNR2,MSE2]=psnr(y,c2);
display('MSE1:
');
MSE1
display('PSNR1:
');
PSNR1
display('MSE2:
');
MSE2
display('PSNR2:
');
PSNR2
MSE1:
MSE1=
118.0365
PSNR1:
PSNR1=
27.4106
MSE2:
MSE2=
88.1850
PSNR2:
PSNR2=
28.6769
closeall;
clc;
I=imread('xian.bmp');
if~isempty(size(I,3))
y=rgb2gray(I);
end
subplot(2,2,1);
imshow(y);
title('原始灰度图像');
J=imnoise(y,'speckle');
subplot(2,2,2);
imshow(J);
title('加噪后的图像');
[c,l]=wavedec2(J,2,'sym4');
>>a1=uint8(wrcoef2('a',c,l,'coif2',2));
>>[gc,gl]=wavedec2(a1,2,'coif2');
>>n=[1,2];%设置尺度向量
>>p=[10.28,24.08];%设置阈值向量
>>nc=wthcoef2('h',gc,gl,n,p,'s');
>>nc=wthcoef2('v',gc,gl,n,p,'s');
>>nc=wthcoef2('d',gc,gl,n,p,'s');
>>mc=wthcoef2('h',gc,gl,n,p,'s');
>>mc=wthcoef2('v',gc,gl,n,p,'s');
>>mc=wthcoef2('d',gc,gl,n,p,'s');
>>d1=waverec2(nc,gl,'coif2');
>>subplot(2,2,3);
>>imshow(x1,[]);
title('第一次消噪图像');
d2=waverec2(mc,gl,'coif2');
>>subplot(2,2,4);
>>imshow(x2,[]);
>>title('第二次消噪图像');
[PSNR1,MSE1]=psnr(y,x1);
[PSNR2,MSE2]=psnr(y,x2);
display('MSE1:
');
MSE1
display('PSNR1:
');
PSNR1
display('MSE2:
');
MSE2
display('PSNR2:
');
PSNR2
MSE1:
MSE1:
MSE1=
156.7310
PSNR1:
PSNR1=
26.1793
MSE2:
MSE2=
99.1610
PSNR2:
PSNR2=
28.1674
closeall;
clc
I=imread('xian.bmp');
if~isempty(size(I,3))
y=rgb2gray(I);
end
J=imnoise(y,'speckle');
[m,n]=size(J);
J=double(J);
A=log(1+J);
THR=thselect(A,'heursure');
[c,l]=wavedec2(A,2,'coif2');
a1=wrcoef2('a',c,l,'coif2',2);
[gc,gl]=wavedec2(a1,2,'coif2');
n=[1,2];%设置尺度向量
p=[THR,THR];%设置阈值向量
nc=wthcoef2('h',gc,gl,n,p,'s');
nc=wthcoef2('v',gc,gl,n,p,'s');
nc=wthcoef2('d',gc,gl,n,p,'s');
mc=wthcoef2('h',nc,gl,n,p,'s');
mc=wthcoef2('v',nc,gl,n,p,'s');
mc=wthcoef2('d',nc,gl,n,p,'s');
e1=waverec2(nc,gl,'coif2');
E1=exp(e1)-1;
e2=waverec2(mc,gl,'coif2');
E2=exp(e2)-1;
figure;
subplot(2,2,1);
imshow(y,[]);
title('原始灰度图像');
subplot(2,2,2);
imshow(J,[]);
title('加噪后的图像');
subplot(2,2,3);
imshow(E1,[]);
title('改进后第一次消噪图像');
subplot(2,2,4);
imshow(E2,[]);
title('改进后第二次消噪图像');
[PSNR1,MSE1]=psnr(y,E1);
[PSNR2,MSE2]=psnr(y,E2);
display('MSE1:
');
MSE1
display('PSNR1:
');
PSNR1
display('MSE2:
');
MSE2
display('PSNR2:
');
PSNR2
MSE1:
MSE1=
84.9459
PSNR1:
PSNR1=
28.8394
MSE2:
MSE2=
84.9459
PSNR2:
PSNR2=
28.8394
closeall;
clc
I=imread('xian.bmp');
if~isempty(size(I,3))
y=rgb2gray(I);
end
J=imnoise(y,'speckle');
[m,n]=size(J);
J=double(J);
k1=filter2(fspecial('average',3),J)/255;%3*3均值滤波
k2=filter2(fspecial('average',7),J)/255;%7*7均值滤波
figure;
subplot(2,2,1);
imshow(y,[]);
title('原始灰度图像');
subplot(2,2,2);
imshow(J,[]);
title('加噪后的图像');
subplot(2,2,3);
imshow(k1,[]);
title('3*3均值滤波');
subplot(2,2,4);
imshow(k2,[]);
title('7*7均值滤波');
b1=medfilt2(J,[33]);%3*3中值滤波
b2=medfilt2(J,[77]);%7*7中值滤波
figure;
subplot(2,2,1);
imshow(y,[]);
title('原始灰度图像');
subplot(2,2,2);
imshow(J,[]);
title('加噪后的图像');
subplot(2,2,3);
imshow(b1,[]);
title('3*3中值滤波');
subplot(2,2,4);
imshow(b2,[]);
title('7*7中值滤波');
c1=wiener2(J,[33]);%3*3维纳滤波
c2=wiener2(J,[77]);%7*7维纳滤波
figure;
subplot(2,2,1);
imshow(y,[]);
title('原始灰度图像');
subplot(2,2,2);
imshow(J,[]);
title('加噪后的图像');
subplot(2,2,3);
imshow(c1,[]);
title('3*3维纳滤波');
subplot(2,2,4);
imshow(c2,[]);
title('7*7维纳滤波');
THR=thselect(J,'heursure');
[c,l]=wavedec2(J,2,'coif2');
a1=uint8(wrcoef2('a',c,l,'coif2',2));
[gc,gl]=wavedec2(a1,2,'coif2');
n=[1,2];%设置尺度向量
p=[THR,THR];%设置阈值向量
nc=wthcoef2('h',gc,gl,n,p,'s');
nc=wthcoef2('v',gc,gl,n,p,'s');
nc=wthcoef2('d',gc,gl,n,p,'s');
mc=wthcoef2('h',nc,gl,n,p,'s');
mc=wthcoef2('v',nc,gl,n,p,'s');
mc=wthcoef2('d',nc,gl,n,p,'s');
d1=waverec2(nc,gl,'coif2');
d2=waverec2(mc,gl,'coif2');
figure;
subplot(2,2,1);
imshow(y,[]);
title('原始灰度图像');
subplot(2,2,2);
imshow(J,[]);
title('加噪后的图像');
subplot(2,2,3);
imshow(d1,[]);
title('第一次消噪图像');
subplot(2,2,4);
imshow(d2,[]);
title('第二次消噪图像');
A=log(1+J);
THR=thselect(A,'heursure');
[c,l]=wavedec2(A,2,'coif2');
a1=wrcoef2('a',c,l,'coif2',2);
[gc,gl]=wavedec2(a1,2,'coif2');
n=[1,2];%设置尺度向量
p=[THR,THR];%设置阈值向量
nc=wthcoef2('h',gc,gl,n,p,'s');
nc=wthcoef2('v',gc,gl,n,p,'s');
nc=wthcoef2('d',gc,gl,n,p,'s');
mc=wthcoef2('h',nc,gl,n,p,'s');
mc=wthcoef2('v',nc,gl,n,p,'s');
mc=wthcoef2('d',nc,gl,n,p,'s');
e1=waverec2(nc,gl,'coif2');
E1=exp(e1)-1;
e2=waverec2(mc,gl,'coif2');
E2=exp(e2)-1;
figure;
subplot(2,2,1);
imshow(y,[]);
title('原始灰度图像');
subplot(2,2,2);
imshow(J,[]);
title('加噪后的图像');
subplot(2,2,3);
imshow(E1,[]);
title('改进后第一次消噪图像');
subplot(2,2,4);
imshow(E2,[]);
title('改进后第二次消噪图像');
[PSNR1,MSE1]=psnr(y,k1);
[PSNR2,MSE2]=psnr(y,k2);
display('MSE1:
');
MSE1
display('PSNR1:
');
PSNR1
display('MSE2:
');
MSE2
display('PSNR2:
');
PSNR2
[PSNR3,MSE3]=psnr(y,b1);
[PSNR4,MSE4]=psnr(y,b2);
display('MSE3:
');
MSE3
display('PSNR3:
');
PSNR3
display('MSE4:
');
MSE4
display('PSNR4:
');
PSNR4
[PSNR5,MSE5]=psnr(y,c1);
[PSNR6,MSE6]=psnr(y,c2);
display('MSE5:
');
MSE5
display('PSNR5:
');
PSNR5
display('MSE6:
');
MSE6
display('PSNR6:
');
PSNR6
[PSNR7,MSE7]=psnr(y,d1);
[PSNR8,MSE8]=psnr(y,d2);
display('MSE7:
');
MSE7
display('PSNR7:
');
PSNR7
display('MSE8:
');
MSE8
display('PSNR8:
');
PSNR8
[PSNR9,MSE9]=psnr(y,E1);
[PSNR0,MSE0]=psnr(y,E2);
display('MSE9:
');
MSE9
display('PSNR9:
');
PSNR9
display('MSE0:
');
MSE0
display('PSNR0:
');
PSNR0
MSE1:
MSE1=
1.0948e+004
PSNR1:
PSNR1=
7.7376
MSE2:
MSE2=
1.0948e+004
PSNR2:
PSNR2=
7.7373
MSE3:
MSE3=
156.5938
PSNR3:
PSNR3=
26.1831
MSE4:
MSE4=
99.0738
PSNR4:
PSNR4=
28.1712
MSE5:
MSE5=
118.0365
PSNR5:
PSNR5=
27.4106
MSE6:
MSE6=
88.1850
PSNR6:
PSNR6=
28.6769
MSE7:
MSE7=
76.0333
PSNR7:
PSNR7=
29.3208
MSE8:
MSE8=
76.0333
PSNR8:
PSNR8=
29.3208
MSE9:
MSE9=
84.9459
PSNR9:
PSNR9=
28.8394
MSE0:
MSE0=
84.9459
PSNR0:
PSNR0=
28.8394