Code to reproduce results of article on Structural Gaussian Priors
MLreconstruction.py is used to initialize the UQ algorithm. The initial guess is found by assuming no prior and running 20 CGLS iterations. Then the RMSE is computed for each iteration and the iteration with the lowest RMSE is chosen as the starting point for the UQ algorithm.
GaussianStructuralPrior_PrecSweep.py is used to estimate a good precision value for the GMRF prior. The script computes the RMSE for several GMRF precision values and the GMRF precision resulting in the lowest RMSE is chosen for the UQ algorithm.
UQstructuralgaussianpriors.py is the main script where the SGP prior is applied and most figures in the paper are produced.
Make sure that the acquisition geometry (ag) is consistent in the script you are running and projectionfunctions.py
Synthetic data can be generated using the script GenerateSynthData.py Real data is found at https://doi.org/10.5281/zenodo.6817690.
For synthetic studies a pipe phantom is used. In the paper the DeepSeaOilPipe4 phantom from phantomlib.py is used.