• 大小: 0.03M
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-03-28
  • 语言: Matlab
  • 标签: matlab  

资源简介


本程序主要对SIRT算法进行Matlab实现,共包含三个m文件。运行时,首先执行GenerateSIRTSystemMatrix.m生成系统矩阵A。然后,每需要重建一副图像时运行一次SIRTOnce.m或SIRTOnceSTD.m。其中,SIRTOnce.m对应了固定步长的SIRT算法,SIRTOnceSTD.m为采用最速下降原理对迭代步长进行优化以后的SIRT算法,并采用FBP算法进行对比重建。

资源截图

代码片段和文件信息

%本程序用于生成系统矩阵A
clc
clear
N=100;%图像大小 N*N
Ma=12;%扫描角度数(01530,...,165度)
Md=ceil(N/sqrt(2))*2;
NS=N*N;
MS=Ma*Md;
Ang=linspace(0180-180/MaMa)*pi/180;
Dis=-Md/2:Md/2; %扫描间距为1

X_Vector=-N/2:N/2;
X_Vector1=ones(1N+1);
XMap=X_Vector‘*X_Vector1;
XMap=XMap‘;
YMap=-XMap‘;
tic
RMap=zeros(MaN+1N+1);
for Ai=1:Ma %射线角度
    RMap(Ai::)=cos(Ang(Ai)).*XMap+sin(Ang(Ai)).*YMap;
end

A=zeros(NSMS);       %系统矩阵
for Ni=1:N%像素行
    for Nj=1:N %像素列
        for Ai=1:Ma %射线角度
            DisPix=[RMap(AiNiNj) RMap(AiNi+1Nj) RMap(AiNiNj+1) RMap(AiNi+1Nj+1)];
            DisPixMax=max(DisPix);
            DisPixMin=min(DisPix);
            DisInd=find((Dis<=DisPixMax) &(Dis>DisPixMin));
            if ~isempty(DisInd)
                PixInd=(Ni-1)*N+Nj;
                for DisIndi=1:length(DisInd)
                    ProInd=(Ai-1)*Md+DisInd(DisIndi);
                    
                    
                    DisPixDiff=DisPix-Dis(DisInd(DisIndi));
           

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-01-19 17:57  上传\
     文件       18238  2014-09-05 20:07  上传\FBP.bmp
     文件        2198  2015-01-19 17:56  上传\GenerateSIRTSystemMatrix.m
     文件        1540  2015-01-19 17:57  上传\SIRTOnce.m
     文件        1678  2015-01-19 17:54  上传\SIRTOnceSTD.m
     文件       17462  2014-09-05 19:58  上传\SITR100.bmp
     文件       11078  2014-09-08 19:38  上传\原始SP.bmp

评论

共有 条评论