#include <GradientFieldSimilarity.h>
Public Member Functions | |
virtual ParameterList | Parameter () const |
Get parameter name/value map. | |
virtual bool | Set (const char *, const char *) |
Set parameter value from string. | |
Public Member Functions inherited from mirtk::ImageSimilarity | |
void | CopyAttributes (const ImageSimilarity &) |
Copy attributes of this class from another instance. | |
virtual void | Exclude (const blocked_range3d< int > &) |
virtual void | Include (const blocked_range3d< int > &) |
virtual void | Initialize () |
Initialize similarity measure once input and parameters have been set. | |
bool | IsForeground (int) const |
Whether to evaluate similarity at specified voxel. | |
bool | IsForeground (int, int, int) const |
Whether to evaluate similarity at specified voxel. | |
mirtkAttributeMacro (bool, InitialUpdate) | |
Whether Update has not been called since initialization. | |
mirtkComponentMacro (GradientImageType, GradientWrtTarget) | |
Memory for (non-parametric) similarity gradient w.r.t target transformation. | |
mirtkComponentMacro (GradientImageType, GradientWrtSource) | |
Memory for (non-parametric) similarity gradient w.r.t source transformation. | |
mirtkComponentMacro (double, Gradient) | |
Memory for (parametric) similarity gradient. | |
mirtkLooseComponentMacro (RegisteredImage, Target) | |
(Transformed) Target image | |
mirtkLooseComponentMacro (RegisteredImage, Source) | |
(Transformed) Source image | |
mirtkPublicAggregateMacro (BinaryImage, Mask) | |
mirtkPublicAttributeMacro (ImageAttributes, Domain) | |
Finite regular domain on which to resample images and evaluate similarity. | |
mirtkPublicAttributeMacro (ForegroundRegion, Foreground) | |
Set operation used to define common foreground region of co-registered images. | |
mirtkPublicAttributeMacro (int, NumberOfVoxels) | |
Number of voxels per registered image. | |
mirtkPublicAttributeMacro (bool, NormalizeImageGradient) | |
Divide transformed image gradient by input intensity range. | |
mirtkPublicAttributeMacro (bool, UseApproximateGradient) | |
mirtkPublicAttributeMacro (double, VoxelWisePreconditioning) | |
mirtkPublicAttributeMacro (double, NodeBasedPreconditioning) | |
mirtkPublicAttributeMacro (bool, SkipTargetInitialization) | |
Skip initialization of target image. | |
mirtkPublicAttributeMacro (bool, SkipSourceInitialization) | |
Skip initialization of source image. | |
virtual void | Print (Indent=0) const |
Print debug information. | |
void | ReleaseSource () |
Release input source image. | |
void | ReleaseTarget () |
Release input target image. | |
virtual void | WriteDataSets (const char *, const char *, bool=true) const |
Write input of data fidelity term. | |
virtual void | WriteGradient (const char *, const char *) const |
Write gradient of data fidelity term w.r.t each transformed input. | |
virtual | ~ImageSimilarity () |
Destructor. | |
Public Member Functions inherited from mirtk::DataFidelity | |
virtual | ~DataFidelity () |
Destructor. | |
Public Member Functions inherited from mirtk::EnergyTerm | |
virtual enum EnergyMeasure | EnergyMeasure () const =0 |
Energy measure implemented by this term. | |
void | Gradient (double *gradient, double step) |
virtual void | GradientStep (const double *gradient, double &min, double &max) const |
double | InitialValue () |
Returns initial value of energy term. | |
void | NormalizedGradient (double *gradient, double step) |
string | Prefix (const char *=NULL) const |
Prefix to be used for debug output files. | |
virtual double | RawValue (double) const |
double | RawValue () |
void | ResetInitialValue () |
Reset initial value of energy term. | |
void | ResetValue () |
Reset cached value of energy term. | |
virtual bool | Upgrade () |
Update energy term after convergence. | |
double | Value () |
Evaluate energy term. | |
virtual | ~EnergyTerm () |
Destructor. | |
Public Member Functions inherited from mirtk::Configurable | |
string | DefaultName () const |
virtual | ~Configurable () |
Destructor. | |
Public Member Functions inherited from mirtk::Observable | |
void | AddObserver (Observer &) |
Add observer. | |
void | Broadcast (Event, const void *=NULL) |
Broadcast event to observers. | |
void | ClearObservers () |
Delete all observers. | |
void | DeleteObserver (Observer &) |
Delete observer. | |
void | NotifyObservers (Event, const void *=NULL) |
Notify all observers about given event if this object has changed. | |
int | NumberOfObservers () const |
Number of current observers. | |
virtual | ~Observable () |
Destructor. | |
Public Member Functions inherited from mirtk::Object | |
virtual const char * | NameOfClass () const =0 |
Get name of class, which this object is an instance of. | |
bool | Parameter (const ParameterList &) |
Set parameters from name/value pairs. | |
virtual | ~Object () |
Destructor. | |
Protected Member Functions | |
GradientFieldSimilarity (const char *="", double=1.0) | |
Constructor. | |
GradientFieldSimilarity (const GradientFieldSimilarity &) | |
Copy constructor. | |
virtual void | InitializeInput (const ImageAttributes &domain) |
void | MultiplyByImageHessian (const RegisteredImage *image, GradientImageType *gradient) |
virtual void | ParametricGradient (const RegisteredImage *image, GradientImageType *np_gradient, double *gradient, double weight) |
void | ReorientGradient (RegisteredImage *, bool=false) |
Reorient transformed image gradient according to dI(y)/dy * dy/dx. | |
virtual void | Update (bool=true) |
Update moving input image(s) and internal state of similarity measure. | |
virtual | ~GradientFieldSimilarity () |
Destructor. | |
Protected Member Functions inherited from mirtk::ImageSimilarity | |
void | ApproximateGradient (RegisteredImage *image, FreeFormTransformation *ffd, double *gradient, double step, double weight) |
void | ApproximateGradient (RegisteredImage *image, double *gradient, double step, double weight) |
virtual void | EvaluateGradient (RegisteredImage *image, GradientImageType *&np_gradient, double *gradient, double step, double weight) |
virtual void | EvaluateGradient (double *gradient, double step, double weight) |
ImageSimilarity (const char *="", double=1.0) | |
Constructor. | |
ImageSimilarity (const ImageSimilarity &) | |
Copy constructor. | |
void | MultiplyByImageGradient (const RegisteredImage *image, GradientImageType *gradient) |
virtual bool | NonParametricGradient (const RegisteredImage *image, GradientImageType *gradient) |
virtual void | NormalizeGradient (GradientImageType *gradient) |
virtual void | NormalizeGradient (const RegisteredImage *image, double *gradient) |
ImageSimilarity & | operator= (const ImageSimilarity &) |
Assignment operator. | |
virtual bool | SetWithoutPrefix (const char *, const char *) |
Set parameter value from string. | |
Protected Member Functions inherited from mirtk::DataFidelity | |
DataFidelity (const char *="", double=1.0) | |
Constructor. | |
DataFidelity (const DataFidelity &) | |
Copy constructor. | |
DataFidelity & | operator= (const DataFidelity &) |
Assignment operator. | |
virtual bool | SetWithPrefix (const char *, const char *) |
Set parameter value from string. | |
Protected Member Functions inherited from mirtk::EnergyTerm | |
EnergyTerm (const char *="", double=1.0) | |
Constructor. | |
EnergyTerm (const EnergyTerm &) | |
Copy constructor. | |
virtual double | Evaluate ()=0 |
Evaluate unweighted energy term. | |
EnergyTerm & | operator= (const EnergyTerm &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Configurable | |
Configurable (const char *="") | |
Constructor. | |
Configurable (const Configurable &) | |
Copy constructor. | |
string | DefaultPrefix () const |
Get default object name prefix (if any) | |
bool | HasName () const |
Whether this object has an explicit name. | |
bool | HasPrefix () const |
Whether this object has either an explicit name or default prefix. | |
template<class T > | |
bool | InsertWithPrefix (ParameterList &, string, T) const |
Insert parameter into name/value list with object name prefix. | |
bool | InsertWithPrefix (ParameterList &, const ParameterList &) const |
Insert parameters into name/value list with object name prefix. | |
Configurable & | operator= (const Configurable &) |
Assignment operator. | |
string | ParameterNameWithoutPrefix (const char *) const |
Get name of parameter without object name prefix. | |
string | ParameterNameWithPrefix (const string &) const |
Get name of parameter with default object name prefix. | |
string | ParameterNameWithPrefix (const char *) const |
Get name of parameter with default object name prefix. | |
Protected Member Functions inherited from mirtk::Observable | |
Observable () | |
Default constructor. | |
Observable (const Observable &) | |
Copy constructor. | |
Observable & | operator= (const Observable &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
void | Throw (ErrorType err, const char *func, Args... args) const |
Additional Inherited Members | |
Public Types inherited from mirtk::ImageSimilarity | |
enum | ForegroundRegion { FG_Domain, FG_Mask, FG_Target, FG_Overlap, FG_Union } |
typedef GenericImage< GradientType > | GradientImageType |
Type of similarity gradient image. | |
typedef double | GradientType |
Type of similarity gradient components. | |
typedef RegisteredImage::VoxelType | VoxelType |
Voxel type of registered images. | |
Public Types inherited from mirtk::EnergyTerm | |
typedef ObjectFactory< enum EnergyMeasure, EnergyTerm > | FactoryType |
Type of energy term factory. | |
Static Public Member Functions inherited from mirtk::ImageSimilarity | |
static ImageSimilarity * | New (SimilarityMeasure, const char *="", double=1.0) |
Instantiate specified similarity measure. | |
Static Public Member Functions inherited from mirtk::EnergyTerm | |
static FactoryType & | Factory () |
Get global energy term factory instance. | |
static EnergyTerm * | New (EnergyMeasure, const char *="", double=1.0) |
Construct new energy term. | |
static EnergyTerm * | TryNew (EnergyMeasure, const char *="", double=1.0) |
Construct new energy term or return nullptr if term not available. | |
Static Public Member Functions inherited from mirtk::Object | |
static const char * | NameOfType () |
Get name of this class type. | |
Static Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
static void | ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args) |
Base class for gradient field similarity measures
Subclasses of this image similarity measure evaluate similarity of two images based on their intensity gradient.
Definition at line 35 of file GradientFieldSimilarity.h.
|
protectedvirtual |
Initialize similarity measure once input and parameters have been set
[in] | domain | Image domain on which the similarity is evaluated. |
Reimplemented from mirtk::ImageSimilarity.
|
protected |
Multiply similarity gradient by 2nd order derivatives of transformed image
[in] | image | Transformed image |
[in,out] | gradient | Input must be the gradient of the image similarity w.r.t. the transformed image gradient. Output is the voxel-wise gradient of the similarity w.r.t. T(x). |
|
protectedvirtual |
Convert non-parametric similarity gradient into gradient w.r.t transformation parameters
This function calls Transformation::ParametricGradient of the transformation to apply the chain rule in order to obtain the similarity gradient w.r.t the transformation parameters. It adds the weighted gradient to the final registration energy gradient.
[in] | image | Transformed image. |
[in] | np_gradient | Voxel-wise non-parametric gradient. |
[in,out] | gradient | Gradient to which the computed parametric gradient is added, after multiplication by the given weight . |
[in] | weight | Weight of image similarity. |
Reimplemented from mirtk::ImageSimilarity.