以下为matlab中计算CT吸收率的方法(结合2017全国大学生数学建模竞赛题目,CT参数的标定):
报表模板中的每一点的数值反映了该点的吸收强度,称为吸收率,
二维待检介质吸收衰减后的光束能量,并经过增益处理后得到180组接收信息
当强度为I_0的波形时束束射线穿透吸收系数为nu 的物体时,其强度满足指数摔减关系:
I=I_0*exp(-nu*t),式中t为光束所穿透物质层厚度.在实际情况中,所研究的物质
往往不是由单一成分组成的,当物体由多个不同的成分组成时,物体内部各处的nu
也可能不同.在这样的物质中,光束穿过这个物体后的强度为
I(L)=I_0*exp(-int_L u(t)dt),式中u(t)为t处的吸收率。
CT系统通过改变一组光线路径L,记录下对应射强度I(L)的变化来分析工件内部u(t)的分布。
这里可以假设输入光束强度都为1,则强度衰减模型为:I=gain*exp(-nu*t),gain为增益系数
根据模板可以在这里知道模板物质密度的吸收系数nu =1,或0
所以强度衰减模型为:I=gain*exp(-t)
只用90度方向的一条投影和模板中的数据来进行最小化二乘增益
y:与ct_radon90中各个投影地址的模板对应在垂直方向的吸收率不为0的介质长度
分析旋转中心有与无偏移动的模板在垂直方向的投影,
可以知道经过radon转换后接收信息rxv与X射线经过介质的长度成正比,比例系数为增益系数gain
根据附件1中模板介质的吸收1,可以计算系统的放大增益
p1=find(ct_radon90~=0);
p2=p1(2:end) ;
p=find(p2-p1(1:end-1)~=1);
rxv是与模板中平坦部分相对应的工艺增益后X射线的吸收值
rxv=ct_radon90(p1(1:find(p2-p1(1:end-1)~=1)));108个
计算介质的长度y ,计算介质在椭圆-15lt;=xlt;=15的长度y
x=-15:30/(length(rxv)-1):15;
椭圆方程:x^2/225 y^2/1600=1
y=2*40*sqrt((1-x.^2/225));
除y的端点长度比较短或者为0的元素,对应的rxv同样操作
y=y(10:length(y)-10);
rxv=rxv(10: length(rxv)-10);
gain=rxv(10)/y(10);
[gain,res]=lsqnonlin(@(gain)myfun(gain, rxv,y'),gain);
xlswrite('CT系统的增益系数.xls',gain);