实验题:CT图像的代数重建问题(线性方程组的应用)

X射线透视可以得到3维对象在2维平面上的投影,CT则通过不同角度的X射线得到3维对象的多个2维投影,并以此重建对象内部的3维图像。代数重建方法就是从这些2维投影出发,通过求解超定线性方程组,获得对象内部3维图像的方法。这里我们考虑一个更简单的模型,从2维图像的1维投影重建原先的2维图像。

一个长方形图像可以用一个横竖均匀划分的离散网格来覆盖,每个网格对应一个像素,它是该网格上各点像素的均值。这样一个图像就可以用一个矩阵表示,其元素就是图像在一点的灰度值(黑白图像)。下面我们以 3*3图像为例来说明。

 

每个网格中的数字代表其灰度值,范围在[0,1]内,记0表示白,1表示黑,0.5为中间的灰色,沿某个方向的投影就将该方向上的灰度值相加(见上图所示)。如果我们不知道网格中的数值,只知道沿竖直方向和水平方向的投影。设网格按第1列、第2列、第3列的顺序排列,为了确定网格中的灰度值,可以建立线性方程组:


显然该方程组的解是不唯一的,为了重建图像,必须增加投影数量。如我们增加从右上到左下的投影,则方程组将增加5个方程,成为超定方程组。考虑到测量误差,可以将超定方程组的近似解作为重建的图像数据。

问题:给定一个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绘制该灰度图像。