資源簡介
本程序主要對SIRT算法進行Matlab實現(xiàn),共包含三個m文件。運行時,首先執(zhí)行GenerateSIRTSystemMatrix.m生成系統(tǒng)矩陣A。然后,每需要重建一副圖像時運行一次SIRTOnce.m或SIRTOnceSTD.m。其中,SIRTOnce.m對應了固定步長的SIRT算法,SIRTOnceSTD.m為采用最速下降原理對迭代步長進行優(yōu)化以后的SIRT算法,并采用FBP算法進行對比重建。
代碼片段和文件信息
%本程序用于生成系統(tǒng)矩陣A
clc
clear
N=100;%圖像大小?N*N
Ma=12;%掃描角度數(shù)(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);???????%系統(tǒng)矩陣
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
評論
共有 條評論