1 /*
2  * Medical Image Registration ToolKit (MIRTK)
3  *
4  * Copyright 2016 Imperial College London
5  * Copyright 2016 Andreas Schuh
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef MIRTK_JointImageEntropy_H
21 #define MIRTK_JointImageEntropy_H
22 
23 #include "mirtk/HistogramImageSimilarity.h"
24 
25 
26 namespace mirtk {
27 
28 
29 /**
30  * Joint entropy image similarity measure
31  */
32 class JointImageEntropy : public HistogramImageSimilarity
33 {
34   mirtkEnergyTermMacro(JointImageEntropy, EM_JE);
35 
36   // ---------------------------------------------------------------------------
37   // Construction/Destruction
38 public:
39 
40   /// Constructor
41   JointImageEntropy(const char * = "");
42 
43   /// Copy constructor
44   JointImageEntropy(const JointImageEntropy &);
45 
46   /// Assignment operator
47   JointImageEntropy &operator =(const JointImageEntropy &);
48 
49   /// Destructor
50   ~JointImageEntropy();
51 
52   // ---------------------------------------------------------------------------
53   // Evaluation
54 protected:
55 
56   /// Evaluate similarity of images
57   virtual double Evaluate();
58 
59   // ---------------------------------------------------------------------------
60   // Debugging
61 public:
62 
63   /// Return unweighted and unnormalized raw energy term value
64   /// \remarks Use for progress reporting only.
65   virtual double RawValue(double) const;
66 
67 };
68 
69 
70 } // namespace mirtk
71 
72 #endif // MIRTK_JointImageEntropy_H
73