英文名称为Algebraic reconstruction technique:即代数重建算法
代数重建技术(ART)是一种用于计算机层析成像的迭代重建技术。它从一系列的角度投影(正弦图)中重建一幅图像。Gordon、Bender和Herman首次证明了它在图像重建中的应用。而这种方法被称为数值线性代数中的Kaczmarz方法。相对于其他重建方法(如滤波反投影),ART的一个优点是,将先验知识(已知的约束条件)纳入重建过程是相对容易的。该算法的实质是用迭代法求解线性方程组的解。
clc;clear all;close all;N = 180; %图像大小N2 = N^2;I = phantom(N);% 产生头模型图像theta = linspace(0,180,181);theta = theta(1:180);%% = = = = = = 产生投影数据 = = = = = = %%P_num = 260; %探测器通道个数P = ParallelBeam(theta ,N ,P_num); %产生投影数据%P = radon(I,theta);%% = = = = = = 获取投影矩阵 = = = = = =%%delta = 1;% 网格大小,角度增量[W_ind,W_dat] = SystemMatrix(theta,N,P_num,delta);%% = = = = = = 进行ART迭代 = = = = = = %%F = zeros(N2,1); %初始图像向量lambda = 0.25; %松弛因子c = 0; %迭代计数器irt_num = 5; while(c for j = 1:length(theta) for i = 1:1:P_num % 取得一条射线所穿过的网格编号和长度 u = W_ind((j-1)*P_num + i,:); % 编号 v = W_dat((j-1)*P_num + i,:); % 长度 if any(u) == 0 continue; end %恢复投影矩阵中与这一条射线对应的行向量 w w = zeros(1,N2); ind = u > 0; w(u(ind))=v(ind); % 图像进行一次迭代 PP = w * F; %前向投影 C = (P(i,j)-PP)/sum(w.^2) * w'; % 修正项 F = F + lambda * C; end end F(F<0) = 0; % 小于0的像素值置为0 c = c+1;endF = reshape(F,N,N)'; % 转换成N x N的图像矩阵%% = = = = = = 仿真结果显示 = = = = = = %%figure(1);imshow(I);xlabel('(a)180x180头模型图像');figure(2);%A = imadjust(F);imshow(F,[]);xlabel('(b)ART算法重建的图像');