CT图像投影滤波重建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学
医学图像处理实验报告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('¾ùֵƽ»¬Â˲¨³ý½·ÑÎÔëÉù');