
CT图像的代数重建问题X射线透视可以得到3维对象在2维平面上的投影,CT则通过不同角度的X射线得到3维对象的多个2维投影,并以此重建对象内部的3维图像,代数重建方法就是从这些2维投影出发,通过求解超定线性方程组,获得对象内部3维图像的方法图1双层螺旋CT图2CT图像这里我们考虑一个更简单的模型,从2维图像的1维投影重建原先的2维图像:一个长方形图像可以用一个横竖均勾划分的离散网格来覆盖,每个网格对应一个像素,它是该网格上各点像素的均值,这样一个图像就可以用一个矩阵表示其元素就是图像在一点的灰度值(黑白图像).下面我们以3×3图像为例来说明表4消耗与产出情况3×3图像水平方向上各点的灰度值的叠加值X3 = 0XI + X2 + X3 = 1xi = 1X2= 0X4=0Xs = 0.5X6 = 0.5X4+ x5+ x6= 1X7 +x8 +xg=1.5X7=0.5Xg=0xg =1竖直方向上XI + X4 + X7X2+ X5+ XX3 + X6+ Xg= 1.5= 0.5= 1.5的叠加值每个网格中的数字x;代表其灰度值,范围在[0,1]内.0表示白色,1表示黑色,0.5表示灰色,如果我们不知道网格中的数值,只知道沿竖直方向和水平方向的叠加值,为了确定网格中的灰度值,可以建立线性方程组(含有6个方程,9个未知数)

X+x, +x, =1x+xs+xg=1.X,+x+xg=1显然该方程组的解是不唯一的,为了重建图像,必须增加叠加值,如我们增加从右上方到左下方的叠加值,则方程组将增加5个方程XI = 1,X2 + X4 = 0,X3 + xs + x = 1,X6 + xg = 0.5,xg =1,和上面的6个方程放在一起构成一个含有11个方程,9个未知数的线性方程组模型准备设3×3图像中第一行3个点的灰度值依次为x1,X2,x3,第二行3个点的灰度值依次为x4x5,x6,第三行3个点的灰度值依次为x7,x8,x9.沿竖直方向的叠加值依次为1.5,0.5,1.5,沿水平方向的叠加值依次为1,1,1.5,沿右上方到左下方的叠加值依次为1,0,1,0.5,1.确定x1,x2,.,xg的值.模型建立由已知条件可得(含有11个方程,9个未知数的)线性方程组[x +x +x, =1x4+Xs+xg=1[x, =1模型求解在Matlab命令窗口输入以下命令>》A =[1,1,1,0, 0, 0, 0,0,0;0, 0, 0, 1, 1, 1, 0, 0, 0;0,0,0,0,0,0,1,1,11, 0, 0, 1, 0, 0, 1, 0, 0;0,1,0,0,1,0,0,1,0;0, 0, 1, 0, 0, 1, 0, 0, 1;1,0,0,0,0,0,0,0,00,1, 0,1,0,0, 0,0,0;0, 0, 1,0, 1,0, 1,0,0;0,0,0,0,0,1,0,1,0;

0, 0, 0, 0, 0, 0, 0, 0, 1] ;>>b=[11 1.51.50.51.51 0 1 0.51]’>> x = AlbMatlab执行后得Warning: Rank deficient, rank = 8, tol = 1.275549e-15x =1.00000.50000.50000.50000.50000.000000.50001.0000可见上述方程组的解不唯一,其中的一个特解为xj=1,x2=-0.5,x3= 0.5, x4=0.5, xs=0.5,x6=0, x7=0, xg=0.5, xg=1.模型分析上述结果表明,仅有三个方向上的叠加值还不够.可以再增加从左上方到右下方的叠加值.在实际情况下,由于测量误差,上述线性方程组可能是超定的.这时可以将超定方程组的近似解作为重建的图像数据Matlab实验题给定一个3×3图像的2个方向上的灰度叠加值:沿左上方到右下方的灰度叠加值依次为0.8,1.2,1.7,0.2,0.3;沿右上方到左下方的灰度叠加值依次为0.6,0.2,1.6, 1.2, 0.6.(1)建立可以确定网格数据的线性方程组,并用Matlab求解.(2)将网格数据乘以256,再取整,用Matlab绘制该灰度图像