📄 eml_sps.m
字号:
function [xs, ni] = eml_sps(x, Gt, yi, ci, ri, niter, curv)%function [xs, ni] = eml_sps(x, Gt, yi, ci, ri, niter, curv)% One iteration of the ML-SPS algorithm for emission Poisson problem% (separable paraboloidal surrogates)% model: Y_i ~ Poisson(c_i [G x]_i + r_i) WITH r_i > 0 REQUIRED!% in:% Gt transpose of system matrix% see em_fbp.m for model, G, yi, ci, ri% out:% x [np,niter] updated image vectors each iteration%% Copyright Mar 2000, Jeff Fessler, The University of Michiganif nargin < 3, help(mfilename), error(mfilename), end[nb, na] = size(yi);if ~isvar('ci') | isempty(ci) ci = ones(size(yi));endif ~isvar('ri') | isempty(ri) ri = zeros(size(yi));endif ~isvar('niter') | isempty(niter) niter = 1;endeml_check(yi, ci, ri) gi = sum(Gt)'; % g_i = sum_j g_ijxs = zeros(numel(x), niter);xs(:,1) = x(:);%% loop over iterations%for ii=2:niter li = reshape(Gt' * x(:), size(yi)); % l=G*x "line integrals" yb = ci .* li + ri; % predicted measurement means % curvatures ni = eml_curvature(yi, ci, ri, li, yb, curv); dothi = ci .* (yi ./ yb - 1); x = x + (Gt * dothi(:)) ./ (Gt * (gi .* ni(:))); x = max(x,0); xs(:,ii) = x;end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -