{% extends "plugin_template.rst" %}
{% block title %}Tomobar Recon Cpu{% endblock %}
{% block description %} A CPU Plugin to reconstruct full-field tomographic projection data using state-of-the-art regularised iterative algorithms from the ToMoBAR package. ToMoBAR includes FISTA and ADMM iterative methods and depends on the ASTRA toolbox and the CCPi RGL toolkit. {% endblock %}
{% block parameter_yaml %}
- in_datasets:
visibility: datasets dtype: "[list[],list[str]]" description: summary: A list of the dataset(s) to process. verbose: A list of strings, where each string gives the name of a dataset that was either specified by a loader plugin or created as output to a previous plugin. The length of the list is the number of input datasets requested by the plugin. If there is only one dataset and the list is left empty it will default to that dataset. default: "[]"
- out_datasets:
visibility: datasets dtype: "[list[],list[str]]" description: summary: A list of the dataset(s) to create. verbose: A list of strings, where each string is a name to be assigned to a dataset output by the plugin. If there is only one input dataset and one output dataset and the list is left empty, the output will take the name of the input dataset. The length of the list is the number of output datasets created by the plugin. default: "[]"
- centre_of_rotation:
visibility: basic dtype: "[float, str, dict{int:float}]" description: Centre of rotation to use for the reconstruction. default: "0.0" example: It could be a fixed value, a dictionary of (sinogram number, value) pairs for a polynomial fit of degree 1, or a dataset name.
- init_vol:
visibility: intermediate dtype: "[None, str]" description: Dataset to use as volume initialiser (does not currently work with preview) default: None example: "Type the name of the initialised dataset e.g. ['tomo']"
- log:
visibility: intermediate dtype: bool description: summary: Option to take the log of the data before reconstruction. verbose: Should be set to false if you use PaganinFilter default: "True" example: Set to True to take the log of the data before reconstruction.
- preview:
visibility: intermediate dtype: preview description: A slice list of required frames. default: "[]"
- force_zero:
visibility: intermediate dtype: "[list[float,float],list[None,None]]" description: Set any values in the reconstructed image outside of this range to zero. default: "['None', 'None']" example: "[0, 1]"
- ratio:
visibility: intermediate dtype: "[float, list[float, float]]" description: Ratio of the masks diameter in pixels to the smallest edge size along given axis. If a list of two floats is given, the second value is used to fill up the area outside the mask. default: "0.95"
- log_func:
visibility: advanced dtype: str description: Override the default log function with a numpy statement default: np.nan_to_num(-np.log(sino))
- vol_shape:
visibility: intermediate dtype: "[str, int]" description: summary: Override the size of the reconstruction volume with an integer value. verbose: When fixed, you get the dimension of the horizontal detector or you can specify any reconstruction size you like with an integer. default: fixed
- data_fidelity:
visibility: advanced dtype: str description: Data fidelity, choose LS, PWLS, SWLS or KL. default: LS
- data_Huber_thresh:
visibility: advanced dtype: "[None,float]" description: Threshold parameter for __Huber__ data fidelity. default: None
- data_beta_SWLS:
visibility: advanced dtype: float description: A parameter for stripe-weighted model. default: "0.1"
- data_full_ring_GH:
visibility: advanced dtype: "[None,str]" description: Regularisation variable for full constant ring removal (GH model). default: None
- data_full_ring_accelerator_GH:
visibility: advanced dtype: float description: Acceleration constant for GH ring removal. (use with care) default: "10.0"
- algorithm_iterations:
visibility: basic dtype: int description: summary: Number of outer iterations for FISTA (default)or ADMM methods. verbose: Less than 10 iterations for the iterative method (FISTA) can deliver a blurry reconstruction. The suggested value is 15 iterations, however the algorithm can stop prematurely based on the tolerance value. default: "15"
- algorithm_verbose:
visibility: advanced dtype: str description: Print iterations number and other messages (off by default). options: "['on', 'off']" default: off
- algorithm_mask:
visibility: advanced dtype: float description: set to 1.0 to enable a circular mask diameter or < 1.0 to shrink the mask. default: "1.0"
- algorithm_ordersubsets:
visibility: advanced dtype: int description: The number of ordered-subsets to accelerate reconstruction. default: "6"
- algorithm_nonnegativity:
visibility: advanced dtype: str options: "['ENABLE', 'DISABLE']" description: summary: ENABLE or DISABLE nonnegativity constraint. default: ENABLE
- regularisation_method:
visibility: intermediate dtype: str options: "['ROF_TV', 'FGP_TV', 'PD_TV', 'SB_TV', 'LLT_ROF', 'NDF', 'TGV', 'NLTV', 'Diff4th']" description: summary: The regularisation (denoising) method to stabilise the iterative recovery verbose: Iterative methods can help to solve ill-posed inverse problems by choosing a suitable noise model for the measurement options: ROF_TV: Rudin-Osher-Fatemi Total Variation model FGP_TV: Fast Gradient Projection Total Variation model PD_TV: Primal-Dual Total Variation SB_TV: Split Bregman Total Variation model LLT_ROF: Lysaker, Lundervold and Tai model combined with Rudin-Osher-Fatemi NDF: Nonlinear/Linear Diffusion model (Perona-Malik, Huber or Tukey) TGV: Total Generalised Variation NLTV: Non Local Total Variation Diff4th: Fourth-order nonlinear diffusion model default: FGP_TV
- regularisation_parameter:
visibility: basic dtype: float description: summary: Regularisation parameter. The higher the value, the stronger the smoothing effect range: Recommended between 1e-06 and 1e-04 default: "5e-06"
- regularisation_iterations:
visibility: intermediate dtype: int description: summary: Total number of regularisation iterations. The smaller the number of iterations, the smaller the effect of the filtering is. A larger number will affect the speed of the algorithm. range: Recommended value dependent upon method. default: regularisation_method: ROF_TV: "300" FGP_TV: "100" PD_TV: "100" SB_TV: "100" LLT_ROF: "300" NDF: "300" Diff4th: "300" TGV: "150" NLTV: "30" dependency: regularisation_method
- regularisation_PD_lip:
visibility: advanced dtype: int description: Primal-dual parameter for convergence. default: "8" dependency: regularisation_method: PD_TV
- regularisation_methodTV:
visibility: advanced dtype: int description: 0/1 - TV specific isotropic/anisotropic choice. default: "0" dependency: regularisation_method: ROF_TV FGP_TV SB_TV NLTV
- regularisation_timestep:
visibility: advanced dtype: float dependency: regularisation_method: ROF_TV LLT_ROF NDF Diff4th description: summary: Time marching parameter range: Recommended between 0.0001 and 0.003 default: "0.003"
- regularisation_edge_thresh:
visibility: advanced dtype: float dependency: regularisation_method: NDF Diff4th description: summary: Edge (noise) related parameter default: "0.01"
- regularisation_parameter2:
visibility: advanced dtype: float dependency: regularisation_method: LLT_ROF description: summary: Regularisation (smoothing) value verbose: The higher the value stronger the smoothing effect default: "0.005"
- regularisation_NDF_penalty:
visibility: advanced dtype: str options: "['Huber', 'Perona', 'Tukey']" description: summary: Penalty dtype verbose: Nonlinear/Linear Diffusion model (NDF) specific penalty type. options: Huber: Huber Perona: Perona-Malik model Tukey: Tukey dependency: regularisation_method: NDF default: Huber
{% endblock %}
{% block plugin_citations %}
A fast iterative shrinkage-thresholding algorithm for linear inverse problems by Beck, Amir et al.
Bibtex
@article{beck2009fast, title={A fast iterative shrinkage-thresholding algorithm for linear inverse problems}, author={Beck, Amir and Teboulle, Marc}, journal={SIAM journal on imaging sciences}, volume={2}, number={1}, pages={183--202}, year={2009}, publisher={SIAM} }
Endnote
%0 Journal Article %T A fast iterative shrinkage-thresholding algorithm for linear inverse problems %A Beck, Amir %A Teboulle, Marc %J SIAM journal on imaging sciences %V 2 %N 1 %P 183-202 %@ 1936-4954 %D 2009 %I SIAM
Nonlinear total variation based noise removal algorithms by Rudin, Leonid I et al.
(Please use this citation if you are using the ROF_TV regularisation_method
Bibtex
@article{rudin1992nonlinear, title={Nonlinear total variation based noise removal algorithms}, author={Rudin, Leonid I and Osher, Stanley and Fatemi, Emad}, journal={Physica D: nonlinear phenomena}, volume={60}, number={1-4}, pages={259--268}, year={1992}, publisher={North-Holland} }
Endnote
%0 Journal Article %T Nonlinear total variation based noise removal algorithms %A Rudin, Leonid I %A Osher, Stanley %A Fatemi, Emad %J Physica D: nonlinear phenomena %V 60 %N 1-4 %P 259-268 %@ 0167-2789 %D 1992 %I North-Holland
Fast gradient-based algorithms for constrained total variation image denoising and deblurring problems by Beck, Amir et al.
(Please use this citation if you are using the FGP_TV regularisation_method
Bibtex
@article{beck2009fast, title={Fast gradient-based algorithms for constrained total variation image denoising and deblurring problems}, author={Beck, Amir and Teboulle, Marc}, journal={IEEE transactions on image processing}, volume={18}, number={11}, pages={2419--2434}, year={2009}, publisher={IEEE} }
Endnote
%0 Journal Article %T Fast gradient-based algorithms for constrained total variation image denoising and deblurring problems %A Beck, Amir %A Teboulle, Marc %J IEEE transactions on image processing %V 18 %N 11 %P 2419-2434 %@ 1057-7149 %D 2009 %I IEEE
The split Bregman method for L1-regularized problems by Goldstein, Tom et al.
(Please use this citation if you are using the SB_TV regularisation_method
Bibtex
@article{goldstein2009split, title={The split Bregman method for L1-regularized problems}, author={Goldstein, Tom and Osher, Stanley}, journal={SIAM journal on imaging sciences}, volume={2}, number={2}, pages={323--343}, year={2009}, publisher={SIAM} }
Endnote
%0 Journal Article %T The split Bregman method for L1-regularized problems %A Goldstein, Tom %A Osher, Stanley %J SIAM journal on imaging sciences %V 2 %N 2 %P 323-343 %@ 1936-4954 %D 2009 %I SIAM
Total generalized variation by Bredies, Kristian et al.
(Please use this citation if you are using the TGV regularisation_method
Bibtex
@article{bredies2010total, title={Total generalized variation}, author={Bredies, Kristian and Kunisch, Karl and Pock, Thomas}, journal={SIAM Journal on Imaging Sciences}, volume={3}, number={3}, pages={492--526}, year={2010}, publisher={SIAM} }
Endnote
%0 Journal Article %T Total generalized variation %A Bredies, Kristian %A Kunisch, Karl %A Pock, Thomas %J SIAM Journal on Imaging Sciences %V 3 %N 3 %P 492-526 %@ 1936-4954 %D 2010 %I SIAM
Model-based iterative reconstruction using higher-order regularization of dynamic synchrotron data by Kazantsev, Daniil et al.
(Please use this citation if you are using the LLT_ROF regularisation_method
Bibtex
@article{kazantsev2017model, title={Model-based iterative reconstruction using higher-order regularization of dynamic synchrotron data}, author={Kazantsev, Daniil and Guo, Enyu and Phillion, AB and Withers, Philip J and Lee, Peter D}, journal={Measurement Science and Technology}, volume={28}, number={9}, pages={094004}, year={2017}, publisher={IOP Publishing} }
Endnote
%0 Journal Article %T Model-based iterative reconstruction using higher-order regularization of dynamic synchrotron data %A Kazantsev, Daniil %A Guo, Enyu %A Phillion, AB %A Withers, Philip J %A Lee, Peter D %J Measurement Science and Technology %V 28 %N 9 %P 094004 %@ 0957-0233 %D 2017 %I IOP Publishing
Scale-space and edge detection using anisotropic diffusion by Perona, Pietro et al.
(Please use this citation if you are using the NDF regularisation_method
Bibtex
@article{perona1990scale, title={Scale-space and edge detection using anisotropic diffusion}, author={Perona, Pietro and Malik, Jitendra}, journal={IEEE Transactions on pattern analysis and machine intelligence}, volume={12}, number={7}, pages={629--639}, year={1990}, publisher={IEEE}}
Endnote
%0 Journal Article %T Scale-space and edge detection using anisotropic diffusion %A Perona, Pietro %A Malik, Jitendra %J IEEE Transactions on pattern analysis and machine intelligence %V 12 %N 7 %P 629-639 %@ 0162-8828 %D 1990 %I IEEE
An anisotropic fourth-order diffusion filter for image noise removal by Hajiaboli, Mohammad Reza et al.
(Please use this citation if you are using the Diff4th regularisation_method
Bibtex
@article{hajiaboli2011anisotropic, title={An anisotropic fourth-order diffusion filter for image noise removal}, author={Hajiaboli, Mohammad Reza}, journal={International Journal of Computer Vision}, volume={92}, number={2}, pages={177--191}, year={2011}, publisher={Springer} }
Endnote
%0 Journal Article %T An anisotropic fourth-order diffusion filter for image noise removal %A Hajiaboli, Mohammad Reza %J International Journal of Computer Vision %V 92 %N 2 %P 177-191 %@ 0920-5691 %D 2011 %I Springer
Nonlocal discrete regularization on weighted graphs, a framework for image and manifold processing by Elmoataz, Abderrahim et al.
(Please use this citation if you are using the NLTV regularisation_method
Bibtex
@article{elmoataz2008nonlocal, title={Nonlocal discrete regularization on weighted graphs: a framework for image and manifold processing}, author={Elmoataz, Abderrahim and Lezoray, Olivier and Bougleux, S{'e}bastien}, journal={IEEE transactions on Image Processing}, volume={17}, number={7}, pages={1047--1060}, year={2008}, publisher={IEEE} }
Endnote
%0 Journal Article %T Nonlocal discrete regularization on weighted graphs, a framework for image and manifold processing %A Elmoataz, Abderrahim %A Lezoray, Olivier %A Bougleux, Sebastien %J IEEE transactions on Image Processing %V 17 %N 7 %P 1047-1060 %@ 1057-7149 %D 2008 %I IEEE
{% endblock %}
{% block plugin_file %}../../../../plugin_api/plugins.reconstructions.tomobar.tomobar_recon_cpu.rst{% endblock %}