matlab矩阵迭代算法程序_【图像处理】基于ART算法图像重建

英文名称为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算法重建的图像');     

547d5d9d4dcd257d83571c76c8cfce95.png

b32ad22b15caf4b82c7d6c7448d9ee76.png

往期回顾>>>>>>

【模式识别】Matlab指纹识别【优化求解】A*算法解决三维路径规划问题  matlab自动识别银行卡号【优化问题】基于栅格地图——遗传算法的机器人最优路径规划【优化求解】模拟退火遗传实现带时间窗的车辆路径规划问题【数学建模】Matlab实现SEIR模型 分享到朋友圈获取 6个赞 即可获取完整代码

f4c728b3d434fef2f9781b0d4602cd1c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值