Entropy.h
Classes
- Entropy -- base class for entropy functions as used by MEM (full description)
- EntropyI -- Thermodynamic or Information entropy used by MEM (full description)
- EntropyEmptiness -- Maximum Emptiness measure used by MEM (full description)
Types
- H = 0
-
- C
-
- F
-
- J
-
Interface
- Public Members
- Entropy()
- virtual ~Entropy()
- virtual Float formEntropy() = 0
- virtual void formGDG(Matrix<double> & ) = 0
- virtual void formGDGStep(Matrix<double> & ) = 0
- virtual Double formGDS() = 0
- virtual void entropyType(String &) = 0
- void setMemModel(CEMemModel& mmm)
- virtual void infoBanner() = 0
- virtual void infoPerIteration(uInt iteration) = 0
- virtual Float relaxMin() = 0
- virtual Bool testConvergence() = 0
- Protected Members
- Entropy(const Entropy &)
Review Status
- Date Reviewed:
- yyyy/mm/dd
Prerequisite
Etymology
This class is called Entropy because it encapsulates the required
functionality of the entropy in the CE MEM algorithm
Synopsis
Provide the generic interface to entropy functions.
We calculate entropy, gradients, and Hessians (diagonal) of the entropy.
For efficiency reasons, we cannot restrict the methods to these calculations,
but must also subsume the loops over image pixels in which they are
used. In this way, the Entropy classes form a tight partnership with
the MemModel classes, taking over more responcibility than strict
functional encapsulation requires.
This class heirarchy is used by CEMemModel, which implements
the Cornwell-Evans Maximum Entropy algorithm.
In the Entropy constructor, we create a pointer to the CEMemModel for
reference to its Mem image, prior image, and default levels.
Since each sort of Entropy is a friend of the CEMemModel, it
has access to its private data. However, we vow here NOT to
touch it, just to look at it. Could have done read-only access,
but too lazy.
Example
EntropyI myEntropyEngine(myCEMemModel&);
Float theEntropy myEntropyEngine.getEntropy();
Motivation
This class is needed to encapsulate the methods of different
functional forms of the entropy, used by Maximum Entropy (MEM)
deconvolution algorithms.
To Do
virtual base class
Member Description
The default constructor is good enough, does nothing.
the MemImage and Prior image are stored in the MemModel.
A virtual destructor may be necessary for use in derived classes.
calculate the entropy for the whole image
virtual void formGDG(Matrix<double> & ) = 0
calculate the Gradient dot Gradient matrix
calculate the Gradient dot Gradient matrix, calculate Step
virtual Double formGDS() = 0
calculate Gradient dot Step
report the entropy type for a logging message
set the MemModel
infoBanner
virtual void infoPerIteration(uInt iteration) = 0
infoPerIteration
virtual Float relaxMin() = 0
are there any constraints on how the Image minimum
gets relaxed?
each entropy type can have its distinct convergence
criteria
Entropy(const Entropy &)
Interface
Public Members
- EntropyI()
- ~EntropyI()
- Float formEntropy()
- void formGDG(Matrix<Double>& )
- void formGDGStep(Matrix<double> & )
- Double formGDS()
- void entropyType(String & str)
- void infoBanner()
- void infoPerIteration(uInt iteration)
- Float relaxMin()
- Bool testConvergence()
Protected Members
- EntropyI(const EntropyI& )
- EntropyI& operator=(const EntropyI& )
Thermodynamic or Information entropy
Member Description
This default constructor is good enough for me.
destructor
calculate the entropy for the whole image
calculate the Gradient dot Gradient matrix
calculate the Gradient dot Gradient matrix, calculate Step
calculate Gradient dot Step
report the entropy type for a logging message
infoBanner
infoIteration
relax image Min
each entropy type can have its distinct convergence
criteria
EntropyI(const EntropyI& )
EntropyI& operator=(const EntropyI& )
Interface
Public Members
- EntropyEmptiness()
- ~EntropyEmptiness()
- Float formEntropy()
- void formGDG(Matrix<Double>& )
- void formGDGStep(Matrix<double> & )
- Double formGDS()
- void entropyType(String & str)
- void infoBanner()
- void infoPerIteration(uInt iteration)
- Float relaxMin()
- Bool testConvergence()
Protected Members
- EntropyEmptiness(const EntropyEmptiness& )
- EntropyEmptiness& operator=(const EntropyEmptiness& )
Emptiness measure
Member Description
This default constructor is good enough for me.
destructor
calculate the entropy for the whole image
calculate the Gradient dot Gradient matrix
calculate the Gradient dot Gradient matrix, calculate Step
calculate Gradient dot Step
report the entropy type for a logging message
infoBanner
infoIteration
relax image Min
each entropy type can have its distinct convergence
criteria
EntropyEmptiness& operator=(const EntropyEmptiness& )