eml_em.m

来自「实现PET/SPECT 幻影图像regression的matlab源代码 al」· M 代码 · 共 60 行

M
60
字号
 function xs = eml_em(x, G, yi, ci, ri, Asum, niter)%function xs = eml_em(x, G, yi, ci, ri, Asum, niter)% E-ML-EM algorithm for image reconstruction from Poisson emission data% in%	x	[np,1]		initial image guess (column - see examples)%	Asum 			A'1 = G' * c	(optional) column sums%	see em_fbp.m for model, G, yi, ci, ri% out%	xs	[np,niter]	image iterates%% Copyright 1998, Jeff Fessler, The University of Michiganif nargin < 3, help(mfilename), error(mfilename), endif ~isvar('ci') | isempty(ci)	ci = 1;	% ones(size(yi(:)));endif ~isvar('ri') | isempty(ri)	ri = 0; % zeros(size(yi(:)));endif ~isvar('Asum') | isempty(Asum)	if length(ci) == 1		Asum = sum(G)' * ci;	else		Asum = G' * ci;	endendif any(Asum <= 0), error 'Asum must be positive.  Adjust mask.', endif ~isvar('niter') | isempty(niter)	niter = 1;endeml_check(yi, ci, ri);if any(x <= 0), error 'need x > 0', endxs = zeros(numel(x), niter);xs(:,1) = x(:);%% loop over iterations%for iter = 2:niter	ticker(mfilename, iter, niter)	%	% update:	% x = x .* (A' * (y ./ (A * x + r))) ./ sum(A)'	% where A = D(ci) G	%	yp = ci .* (G * x) + ri;	% predicted measurements	eterm = G' * (ci .* (yi ./ yp));	x = x .* eterm ./ Asum;	xs(:,iter) = x;end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?