diff options
author | Daniil Kazantsev <dkazanc@hotmail.com> | 2017-07-03 22:57:55 +0100 |
---|---|---|
committer | Daniil Kazantsev <dkazanc@hotmail.com> | 2017-07-03 22:57:55 +0100 |
commit | 75e7ebc79e86710c4cfb05b8af8e429146288c85 (patch) | |
tree | 3d6abaccb81c44df111605474c117fb2bc6570a9 /main_func | |
parent | 329a104d4cb5ba50a59fb80e58de0453ba49f075 (diff) | |
download | regularization-75e7ebc79e86710c4cfb05b8af8e429146288c85.tar.gz regularization-75e7ebc79e86710c4cfb05b8af8e429146288c85.tar.bz2 regularization-75e7ebc79e86710c4cfb05b8af8e429146288c85.tar.xz regularization-75e7ebc79e86710c4cfb05b8af8e429146288c85.zip |
FISTA-GH bug fixed
Diffstat (limited to 'main_func')
-rw-r--r-- | main_func/FISTA_REC.m | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/main_func/FISTA_REC.m b/main_func/FISTA_REC.m index ed74181..e21ba60 100644 --- a/main_func/FISTA_REC.m +++ b/main_func/FISTA_REC.m @@ -165,7 +165,7 @@ if (isfield(params,'slice')) else slice = 1; end -if (isfield(params,'initilize')) +if (isfield(params,'initialize')) % Create a data object for the reconstruction rec_id = astra_mex_data3d('create', '-vol', vol_geom); @@ -215,7 +215,7 @@ if (lambdaR_L1 > 0) [sino_id, sino_updt] = astra_create_sino3d_cuda(X_t, proj_geom, vol_geom); for kkk = 1:anglesNumb - add_ring(:,kkk,:) = sino(:,kkk,:) - alpha_ring.*r_x; + add_ring(:,kkk,:) = squeeze(sino(:,kkk,:)) - alpha_ring.*r_x; end residual = weights.*(sino_updt - add_ring); @@ -223,9 +223,12 @@ if (lambdaR_L1 > 0) if (precondition == 1) residual = filtersinc(residual'); % filtering residual (Fourier preconditioning) residual = residual'; - end - + end + vec = sum(residual,2); + if (SlicesZ > 1) + vec = squeeze(vec(:,1,:)); + end r = r_x - (1./L_const).*vec; |