卷积反投影重建(二维)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

卷积反投影图像重建

1 反投影重建基本介绍[1]

设待重建图像为),(y x a ,它的二维傅氏变换为^

1

2

(,)(,)A A ωωρφ=。根据中心切片定理,^

(,)A ρφ可通过),(y x a 在不同视角φ下的投影()r p x φ的

一维傅氏变换求得。即:

待建图像:

12^

1212()1212

2

^2cos()0

2cos()02cos()0(,)(,)(,)1(,)4(,)(,)(,)i x y i r i r i r a r a x y F A A e d d A e d d P e d d d P e d ωωππρθφπ

πρθφπ

πρθφθωωωωωωπρφρρφ

ρφρρφ

φρρφρ

-∞∞

+-∞-∞

∞--∞

--∞

--∞======??

???

?

??

[]

(1.1)

因为cos()r x r θφ=-,所以有:

122(cos sin )22cos()r x y x y x r ωωπρφφπρπρθφ+=+==- 同时:

12d d J d d ωωρφ=

11222//2cos 2sin 4//2sin 2cos J ωρωφπφ

πρφ

πρωρωφπφ

πρφ

????-=

=

=???? (1.2)

先来看该式的第二个积分:

[]

22cos()

cos()cos()cos()(,)(,)|()(,)|(,)|cos(),r r r r i x i r x r r r x r r x r P e

d P

e d h x p x g x g r πρπρθφθφθφθφρρφρρρφρ

φφθφφ∞

-=--∞

-∞

=-=-==*==-?

? (1.3)

式中:(,)()(,)r r r g x h x p x φφ=*

(1.4)

^

121(,)(,)()()(,)r

A A F p x P

P φφωωρφρρφ??====??

式(3.10)的物理意义是投影(,)r p x φ经过传递函数为1[()]r F h x ρ=的滤波器后得到的修正后的投影(,)r g x φ在满足cos()r x r θφ=-时的值。将(3.11)代入(3.8),得到:

^

0(,)[cos(),]a r g r d π

θθφφφ=-? (1.5)

称为滤波反投影方程,其物理意义是经过给定点(,)r θ的所有滤波后的投影在0φ=~π范围内的累加—反投影重建,得出(,)r θ点的像素值。

可见,滤波(卷积)反投影算法的具体包含三大步:

(1) 把在固定视角i φ下测得的投影(,)r p x φ经过滤波,得到滤波后的投影(,)r g x φ;

(2) 对每一个i φ,把(,)r i g x φ反投影于满足cos()r i x r θφ=-的射线上的所有各点(,)r θ;

(3) 将步骤(2)中的反投影值对所有0<φπ≤进行累加(积分),

得到重建后的图像。 2 重建流程

2.1 首先我们利用phantom ()函数产生一个头部幻影图像,用以检测二维重建算法,代码如下:

I=phantom(256); subplot(2,2,1) imshow(I,[]);

title('256*256原始图像'); 效果图如图1所示,

图1

为一个大椭圆和几个小椭圆。

2.2 初始参数设置

重建采用的是平移加旋转的扫描方式,射线源在某一角度下水平移动,将物体全部照射后旋转一角度,如此重复,在这个过程中探测器相应地运动以接收X 射线。根据此原理,将重建程序的初始参数设置如下

:

[N,N]=size(I);

z=2*ceil(norm(size(I)-floor((size(I)-1)/2)-1))+3;% radon变换默认平移点数/角度

Nt=360; % 角度采样点数

Nd=N; % 平移数

x=pi/180; % 角度增量

d=N/Nd; % 平移步长

theta = 1:Nt;

a=zeros(N);

2.3 产生无噪声投影数据

[R,xp] = radon(I,theta);

e=floor((z-Nd)/2)+2;

R=R(e:(Nd+e-1),:);

R1=reshape(R,256,360);

radon(I,theta)产生I投影,默认z点/角度,即使指定N点也是z 点.所以为避免重建图像放大或缩小,下面计算取投影时需补偿,补偿量e,如对256的图像,补偿为55,即pm的第55个点作为计算用的第一个投影。

2.4 添加噪声并将所有噪声平行投影进行显示

[mm,nn]=size(R1);

di=lognrnd(0,0.15,mm,nn);

R1= 10*(R1-min(R1(:)))/( max(R1(:))-min(R1(:)));

I0 = 1.5e5; % incident photons; decrease this for simulating "low dose" scans

rand('state', 0), randn('state', 0);

yi= poissrnd(I0 * di.*exp(-R1))+3*randn(size(R1));

if any(yi(:) == 0)

warn('%d of %d values are 0 in sinogram!', ...

sum(yi(:)==0), length(yi(:)));

end

R1 = log(I0 ./ max(yi,0.01)); % noisy sinogram

R1=max(R1,0);

% 显示

ff=2;

uu=22000;

v=ff*exp(R1/uu);

subplot(2,2,2)

imagesc(R1);

title('256*360有噪声平行投影');

colormap(gray)

colorbar

Q=reshape(R1,256,360);

效果图如图-2: 图-2 2.5 滤波器的选择与设计

最基本的从投影重建图像的滤波器:1971年提出的R-L重建滤

波器(下图中实线表示)。

图-3 R-L 滤波器示意图

空域表达式为:

(2.1)

其中B为截至频率。若,d为空间采样

间隔,可解出离散的滤波器空间脉冲响应:

(2.2)

MATLAB 代码如下:

g=-(Nd/2-1):(Nd/2);

for i=1:256

if g(i)==0

hl(i)=1/(4*d^2);

else if mod(g(i),2)==0

hl(i)=0;

else

hl(i)=(-1)/(pi^2*d^2*(g(i)^2));

end

end

end

k=Nd/2:(3*Nd/2-1);

2.6 重建图像

代码设计:

for m=1:Nt

pm=Q(:,m);

u=conv(hl,pm);

pm=u(k);

Cm=((N-1)/2)*(1-cos((m-1)*x)-sin((m-1)*x));

for i=1:N

for j=1:N

Xrm=Cm+(j-1)*cos((m-1)*x)+(i-1)*sin((m-1)*x);

if Xrm<1

n=1;

t=abs(Xrm)-floor(abs(Xrm));

else

n=floor(Xrm);

t=Xrm-floor(Xrm);

end

if n>(Nd-1)

n=Nd-1;

end

p=(1-t)*pm(n)+t*pm(n+1);

a(N+1-i,j)=a(N+1-i,j)+p;

end

end

end

重建后的图像如图-3 所示: 图-3 程序中还包含对重建结果的评价/归一化均方距离判据/归一化平均绝对距离判据以及程序的运行时间等.不再进行详细介绍。程

序的最终运行效果如下:

图-4 程序最终运行效果图

3、分析

反投影重建方法包括卷积反投影重建的缺点是会产生星状伪迹,原因分析如下:

断层平面中某一点的密度值可以看作是这一平面内所有经过该点的射线的投影值之和(的均值)。

整幅重建图像可以看作是所有方向下的投影累加而成。射线标号示于图5中,像素值(代表密度)分别1x ,2x ,3x ,4x , 赋值如下:15x =,20x =,32x =,418x =

图5 图像重建像素值

根据投影的定义(某条射线投影值为该条射线穿过的所有的像素值之和),每条射线的投影i p (1,2i =)为:

1

2

15p x x =+=, 23420p x x =+=,3137p x x =+= 42418p x x =+=, 532p x ==, 61423p x x =+= 720p x ==

根据反投影重建算法的物理意义,重建图像中各像素,得到: 113635x p p p =++=,214723x p p p =++=, 323529x p p p =++=424661x p p p =++=,

(a) 原图像像素值 (b)反投影重建后图像 (c)求平均后图像

图 6 反投影示例

重建后的图像如图6(b)所示,可以看出原图像中像素值不为零的点反投影重建后仍较突出,但原图中像素值为零的点,经反投影重建后不再为零,即有伪迹。有时为了使重建后图像的像素值更接近于原图的像素值,在求反投影时,把数据除以投影的数目(即射线数),如图6(c)所示。 因此有:

,1

1

p

n k k i

i p

x p

n ==

(3.1)

该式可作为反投影重建算法的计算式。其中k x 表示像素k 的值,i k p ,表示经过像素k 的第i 条射线投影,p n 表示图像内的射线条数。

图7(a)表示空间中一个孤立点源A ,密度为1。经过A 点的三条射线也示于图中。射线束理论上可以很多,取三条示意。不经过A 点的射线投影为零,经过A 点的射线投影值均为1, 1231p p p ===。

(a) 孤立点源A 及三条射线 (b)相应的反投影重建图,有星状伪迹

图 7 孤立点源的反投影重建及星状伪迹

经反投影重建后,得到A 点的像素值为123()/31A f p p p =++=。A 点以外的像素值原来为零,经反投影重建后不等于零,而是等于1/3。所以,经反投影重建后的图像除保留A 点的像外,还有像素值为1/n 的灰雾背景,后者称为星状伪迹。产生星状伪迹的原因在于:反投影的本质是把取自有限物体空间的投影均匀地回抹(反投影)到射线所及的无限空间的各点上,包括原先像素值为零的点。

参考文献

[1] 滤波反投影,Zhengdong Zhou.2012

(1)

(2)(3)

相关文档
最新文档