STIR  6.3.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members

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
 

Detailed Description

template<typename elemT>
class stir::RelativeDifferencePotential< elemT >

Implementation of the Relative Difference penalty potential.

The prior energy is:

\[ \sum_{r,dr} \kappa_{r} \kappa_{r+dr} w_{dr} \frac{(\lambda_r - \lambda_{r+dr})^2}{2(\lambda_r + \lambda_{r+dr} + \gamma |\lambda_r - \lambda_{r+dr}| + \epsilon)} \]

Where:

Warning
Only well-defined for non-negative voxel values. With $\epsilon=0$, gradient algorithms may have issues near zero values, as the Hessian becomes singular.
See also
Nuyts et al., "A Concave Prior Penalizing Relative Differences for Maximum-a-Posteriori Reconstruction in Emission Tomography," IEEE TNS, vol. 49(1), pp. 56-60, 2002.

The documentation for this class was generated from the following file: