|
STIR
6.3.0
|
Implementation of the Relative Difference penalty potential. More...
#include "stir/recon_buildblock/GibbsRelativeDifferencePenalty.h"
Public Member Functions | |
| __host__ __device__ double | value (const elemT val_center, const elemT val_neigh, int z, int y, int x) const |
| Method for computing the potential value. | |
| __host__ __device__ double | derivative_10 (const elemT val_center, const elemT val_neigh, int z, int y, int x) const |
| Method for computing the first derivative with respect to val_center. | |
| __host__ __device__ double | derivative_20 (const elemT val_center, const elemT val_neigh, int z, int y, int x) const |
| Method for computing the second derivative with respect to val_center. | |
| __host__ __device__ double | derivative_11 (const elemT val_center, const elemT val_neigh, int z, int y, int x) const |
| Method for computing the mixed second derivative. | |
| void | initialise_keymap (KeyParser &parser) |
| Method for setting up parsing additional parameters. | |
| void | set_defaults () |
| Set default values for potential-specific parameters. | |
Static Public Member Functions | |
| static bool | is_convex () |
| method to indicate whether the the prior defined by this potential is convex | |
Public Attributes | |
| float | gamma |
| float | epsilon |
Implementation of the Relative Difference penalty potential.
The prior energy is:
Where:
and
are pixel values at positions
and 
is a smoothing parameter for the prior (default: 2.0)
prevents division by zero (default: 1e-7)
are distance-dependent weights
provides spatially-varying penalty weights (optional)
, gradient algorithms may have issues near zero values, as the Hessian becomes singular.
1.8.13