CT图像投影滤波重建

  • 格式:docx
  • 大小:820.49 KB
  • 文档页数:8

中 南 大 学
医学图像处理实验报告

CT图像投影域加噪与滤波去噪

中南大学生物医学工程系
生物医学工程1101班
指导老师:喻罡
文勋喆、苏猛、龚书滔、王正果

2014年4月27日
1. 实验目的
A.熟悉CT图像重建原理;
B.对比几种重建图像方法,掌握反投影重建法;
C.在投影域加噪声,熟悉去噪算法。

2. 实验原理
根据著名的Radon变换,能到体膜在不同角度的

3. 实验平台
Windows 7 操作系统
Matlab 2013b 软件

4. 实验步骤
a. 构造体膜
b. Radon变换,加上高斯噪声
c. 利用算法进行去噪声
d. iRadon变换得到去噪后的图像
e. 得到结果,提出结论

5. 实验结果

A. 体膜图像
I=phantom(256);
B. Radon变换
theta=0:179;
[R]=radon(I,theta)

C. 图像加噪处理
MatLab加噪函数:
高斯噪声:
J1=10*imnoise(1.5e-2*R,'gaussian',0,0.003);

椒盐噪声:
J2=10*imnoise(1.5e-2*R,'salt & pepper',0.03);
随机噪声: Jr=5*randn(size(R));
D. 投影域去噪滤波
MatLab滤波函数:
高斯滤波器: Lg=fspecial('gaussian');
L1=imfilter(J,Lg)

自适应维纳滤波器: L2=wiener2(J,[3 3]);
中值滤波器: L3=medfilt2(J);
均值平滑滤波: LL=fspecial('average');
L4imfilter(J,LL);

E. 图像反投影重建
Reimage=iradon(L,[0:179],'linear','Shepp-Logan');
6. 结论分析
A. 在投影域里的加入各种噪声,如高斯噪声,椒盐噪声等,它们都比较大程度的影响
了重建图像的质量,因此需要除噪声。
B. 除噪声既能在重建图上进行,也能在投影图上进行。此次试验在投影图上进行,及
时去除噪声,以免噪声信号进入重建环节而使图像质量变差。这样使图像的除噪性
能更好。
C. 中值滤波和均值滤波能有效的去除噪声,但当随着噪声方差加大,噪声变大,效果
会变得不理想。
D. 加噪声函数imnoise会影响图像重建效果,如实验结果中可以看出,去除用imnoise
函数写的噪声图像经过去噪再重建的效果不好,而用randn函数加上的随机高斯噪
声经过滤波在反投影重建图像时,效果明显好于前者。
附录
程序源代码:
I=phantom(256);
theta=0:179;
[R]=radon(I,theta);

J1=10*imnoise(1.5e-2*R,'gaussian',0,0.003);
J2=10*imnoise(1.5e-2*R,'salt & pepper',0.03);
Jr=5*randn(size(R));
J3=R+Jr
figure,imshow(R,[])
figure,imshow(J1,[])
figure,imshow(J2,[])
figure,imshow(J3,[])

Lg=fspecial('gaussian');
L1_1=imfilter(J1,Lg);
L1_2=imfilter(J2,Lg);
L1_3=imfilter(J3,Lg);
figure,imshow(L1_1,[]),xlabel('¸ß˹Â˲¨Æ÷³ý¸ß˹ÔëÉù');
figure,imshow(L1_2,[]),xlabel('¸ß˹Â˲¨Æ÷³ý½·ÑÎÔëÉù');
figure,imshow(L1_3,[]),xlabel('¸ß˹Â˲¨Æ÷³ýËæ»úÔëÉù');

L2_1=wiener2(J1,[3 3]);
L2_2=wiener2(J2,[3 3]);
L2_3=wiener2(J3,[3 3]);
figure,imshow(L2_1,[]),xlabel('άÄÉÂ˲¨Æ÷³ý¸ß˹ÔëÉù');
figure,imshow(L2_2,[]),xlabel('άÄÉÂ˲¨Æ÷³ý½·ÑÎÔëÉù');
figure,imshow(L2_3,[]),xlabel('άÄÉÂ˲¨Æ÷³ýËæ»úÔëÉù');

L3_1=medfilt2(J1);
L3_2=medfilt2(J2);
L3_3=medfilt2(J3);
figure,imshow(L3_1,[]),xlabel('ÖÐÖµÂ˲¨Æ÷³ý¸ß˹ÔëÉù');
figure,imshow(L3_2,[]),xlabel('ÖÐÖµÂ˲¨Æ÷³ý½·ÑÎÔëÉù');
figure,imshow(L3_3,[]),xlabel('ÖÐÖµÂ˲¨Æ÷³ýËæ»úÔëÉù');

LL=fspecial('average');
L4_1=imfilter(J1,LL);
L4_2=imfilter(J2,LL);
L4_3=imfilter(J3,LL);
figure,imshow(L4_1,[]),xlabel('¾ùֵƽ»¬Â˲¨³ý¸ß˹ÔëÉù');
figure,imshow(L4_2,[]),xlabel('¾ùֵƽ»¬Â˲¨³ý½·ÑÎÔëÉù');
figure,imshow(L4_3,[]),xlabel('¾ùֵƽ»¬Â˲¨Æ÷³ýËæ»úÔëÉù');
Reimage_1=iradon(L1_3,[0:179],'linear','Shepp-Logan');
Reimage_2=iradon(L2_3,[0:179],'linear','Shepp-Logan');
Reimage_3=iradon(L3_3,[0:179],'linear','Shepp-Logan');
Reimage_4=iradon(L4_3,[0:179],'linear','Shepp-Logan');
figure,imshow(Reimage_1),xlabel('¸ß˹³ýËæ»úÔëÉù·´Í¶Ó°Öؽ¨');
figure,imshow(Reimage_2),xlabel('άÄɳýËæ»úÔëÉù·´Í¶Ó°Öؽ¨');
figure,imshow(Reimage_3),xlabel('ÖÐÖµ³ýËæ»úÔëÉù·´Í¶Ó°Öؽ¨');
figure,imshow(Reimage_4),xlabel('¾ùֵƽ»¬³ýËæ»úÔëÉù·´Í¶Ó°Öؽ¨');