![]() |
CASToR
3.2
Tomographic Reconstruction (PET/SPECT/CT)
|
This class implements the general Markov Random Field kind of penalties. More...
#include <iPenaltyMarkovRandomField.hh>
Public Member Functions | |
iPenaltyMarkovRandomField () | |
The constructor of iPenaltyMarkovRandomField. More... | |
~iPenaltyMarkovRandomField () | |
The destructor of iPenaltyMarkovRandomField. More... | |
int | ReadConfigurationFile (const string &a_configurationFile) |
int | ReadOptionsList (const string &a_optionsList) |
int | LocalPreProcessingStep (int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th) |
FLTNB | ComputePenaltyValue (int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th) |
FLTNB | ComputeFirstDerivative (int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th) |
FLTNB | ComputeSecondDerivative (int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th) |
int | BuildSpecificNeighborhood (INTNB a_voxel, int a_th) |
int | GetPotentialType () |
FLTNB * | GetProximityKernel () |
FLTNB * | GetSimilarityFactors (int a_th) |
INTNB | GetNeighborhoodMaxNbVoxels () |
INTNB ** | GetNeighborhoodIndices () |
iPenaltyMarkovRandomField () | |
~iPenaltyMarkovRandomField () | |
int | ReadConfigurationFile (const string &a_configurationFile) |
int | ReadOptionsList (const string &a_optionsList) |
int | LocalPreProcessingStep (int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th) |
FLTNB | ComputePenaltyValue (FLTNB *ap_image, INTNB a_voxel, int a_th) |
FLTNB | ComputeFirstDerivative (FLTNB *ap_image, INTNB a_voxel, int a_th) |
FLTNB | ComputeSecondDerivative (FLTNB *ap_image, INTNB a_voxel, int a_th) |
int | BuildSpecificNeighborhood (INTNB a_voxel, int a_th) |
int | GetPotentialType () |
FLTNB * | GetProximityKernel () |
FLTNB * | GetSimilarityFactors (int a_th) |
INTNB | GetNeighborhoodMaxNbVoxels () |
INTNB ** | GetNeighborhoodIndices () |
![]() | |
vPenalty () | |
The constructor of vPenalty. More... | |
virtual | ~vPenalty () |
The destructor of vPenalty. More... | |
void | ShowHelp () |
A function used to show help about the penalty. More... | |
int | CheckParameters () |
A public function used to check the parameters settings. More... | |
int | Initialize () |
A public function used to initialize the penalty. More... | |
virtual int | GlobalPreProcessingStep () |
A public function computing a global pre-processing step for the penalty. More... | |
void | SetVerbose (int a_verbose) |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification) |
void | SetImageSpace (oImageSpace *ap_ImageSpace) |
void | SetPenaltyStrength (FLTNB a_penaltyStrength) |
FLTNB | GetPenaltyStrength () |
Get the penalty strength. More... | |
int | GetPenaltyDerivativesOrder () |
Get the penalty deratives order. More... | |
void | SetPenaltyID (const string &a_penaltyID) |
const string & | GetPenaltyID () |
vPenalty () | |
virtual | ~vPenalty () |
void | ShowHelp () |
int | CheckParameters () |
int | Initialize () |
virtual int | GlobalPreProcessingStep () |
void | SetVerbose (int a_verbose) |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification) |
void | SetImageSpace (oImageSpace *ap_ImageSpace) |
void | SetDataFile (vDataFile *ap_DataFile) |
Set the image space in use. More... | |
void | SetPenaltyStrength (FLTNB a_penaltyStrength) |
FLTNB | GetPenaltyStrength () |
int | GetPenaltyDerivativesOrder () |
void | SetPenaltyID (const string &a_penaltyID) |
const string & | GetPenaltyID () |
Private Member Functions | |
void | ShowHelpSpecific () |
A function used to show help about the child penalty. More... | |
int | CheckSpecificParameters () |
A private function used to check the parameters settings specific to the child penalty. More... | |
int | InitializeSpecific () |
This function is used to initialize specific stuff to the child penalty. More... | |
int | BuildNeighborhoodKernel () |
A function used to build the neighborhood kernel. More... | |
int | BuildProximityFactors () |
A function used to build the kernel of the proximity factors. More... | |
int | ComputeSimilarityFactors (int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th) |
void | ShowHelpSpecific () |
A function used to show help about the child module. More... | |
int | CheckSpecificParameters () |
A private function used to check the parameters settings specific to the child penalty. More... | |
int | InitializeSpecific () |
A private function used to initialize everything specific to the child penalty. More... | |
int | BuildNeighborhoodKernel () |
int | BuildProximityFactors () |
int | ComputeSimilarityFactors (int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th) |
Additional Inherited Members | |
![]() | |
string | m_penaltyID |
oImageDimensionsAndQuantification * | mp_ImageDimensionsAndQuantification |
oImageSpace * | mp_ImageSpace |
int | m_verbose |
int | m_penaltyDerivativesOrder |
FLTNB | m_penaltyStrength |
vDataFile * | mp_DataFile |
This class implements the general Markov Random Field kind of penalties.
This class inherits from vPenalty and implements the general MRF penalties.
Definition at line 45 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
iPenaltyMarkovRandomField::iPenaltyMarkovRandomField | ( | ) |
The constructor of iPenaltyMarkovRandomField.
This is the default and unique constructor. It does not take any parameter and its role is only to affect default values to each member of the class.
Definition at line 15 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
iPenaltyMarkovRandomField::~iPenaltyMarkovRandomField | ( | ) |
The destructor of iPenaltyMarkovRandomField.
This is the default and unique destructor. It does not take any parameter and its role is only to free or delete all structures that were built by this class.
Definition at line 51 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
iPenaltyMarkovRandomField::iPenaltyMarkovRandomField | ( | ) |
iPenaltyMarkovRandomField::~iPenaltyMarkovRandomField | ( | ) |
|
private |
|
private |
A function used to build the neighborhood kernel.
This function build the table m2p_neighborhoodKernel, that prepare neighborhood indices operations. It is called only one time at initialization. The kernel will be used when computing the specific neighborhood of any voxel later on.
Definition at line 637 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
private |
|
private |
A function used to build the kernel of the proximity factors.
This function build the table FLTNB* mp_proximityKernel
Definition at line 782 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
int iPenaltyMarkovRandomField::BuildSpecificNeighborhood | ( | INTNB | a_voxel, |
int | a_th | ||
) |
int iPenaltyMarkovRandomField::BuildSpecificNeighborhood | ( | INTNB | a_voxel, |
int | a_th | ||
) |
Definition at line 873 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
privatevirtual |
A private function used to check the parameters settings specific to the child penalty.
This function is used to check that all parameters specific to the penalty are correctly set within allowed values. It is called by the CheckParameters() function. It is pure virtual so is implemented by children.
Implements vPenalty.
|
privatevirtual |
A private function used to check the parameters settings specific to the child penalty.
This function is used to check that all parameters specific to the penalty are correctly set within allowed values. It is called by the CheckParameters() function of the mother class. It is the implementation of the pure virtual function inherited from the abstract mother class vPenalty.
Implements vPenalty.
Definition at line 408 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
Definition at line 1067 of file src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
Definition at line 1071 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
Definition at line 983 of file src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
Definition at line 985 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
Definition at line 1162 of file src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
Definition at line 1166 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
private |
|
private |
Definition at line 917 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
inline |
Definition at line 180 of file include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 186 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 175 of file include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 181 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 159 of file include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 165 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 164 of file include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 170 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 170 of file include/optimizer/iPenaltyMarkovRandomField.hh.
|
inline |
Definition at line 176 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
privatevirtual |
A private function used to initialize everything specific to the child penalty.
This function is used to initialize everything specific to the penalty that should be initialized. It is called by the Initialize() function. It is pure virtual so is implemented by children.
Implements vPenalty.
|
privatevirtual |
This function is used to initialize specific stuff to the child penalty.
It is called by the public Initialize() function from the mother.
Implements vPenalty.
Definition at line 510 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Reimplemented from vPenalty.
Definition at line 962 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Reimplemented from vPenalty.
|
virtual |
Implements vPenalty.
|
virtual |
Implements vPenalty.
Definition at line 171 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
Definition at line 396 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
virtual |
Implements vPenalty.
|
privatevirtual |
A function used to show help about the child module.
This function must describe what the penalty does and how to use it. It describes in details the different parameters of the penalty, and how to set them through the use of a configuration file or a list of options. It is pure virtual so is implemented by children. It is private because called by the public ShowHelp() function.
Implements vPenalty.
|
privatevirtual |
A function used to show help about the child penalty.
This function must describe what the module does and how to use it. It describes in details the different parameters of the penalty, and how to set them through the use of a configuration file or a list of options. It is the implementation of the pure virtual function inherited from the abstract class vPenalty. It is called by the public ShowHelp() function.
Implements vPenalty.
Definition at line 97 of file code/src/optimizer/iPenaltyMarkovRandomField.cc.
|
private |
Helper variable for Bowsher computations, first index on threads, second on neighborhood voxels, same ordering as neighboring kernel
Definition at line 269 of file include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Neighborhood indices of a specific voxel. First index is on the threads, second one contains the list of the voxels in the neighborhood (as many as m_neighborhoodMaxNbVoxels). It follows strictly the same order than m2p_neighborhoodKernel, with the convention -1: out of image boundaries
Definition at line 274 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Neighborhood of a virtual voxel of coordinates 0, 0, 0 without boundary. First index on neighboring voxels, second one on indexes
Definition at line 272 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Similarity factors of the neighborhood. First index on threads, second on neighboring voxels, as for m2p_neighborhoodIndices
Definition at line 264 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
In case of a box neighborhood, remove the corners as in some papers, or not (keep them by default)
Definition at line 270 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
In case of a box neighborhood, order of the box
Definition at line 269 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Maximum number of voxels in the neighborhood
Definition at line 271 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Type of neighborhood (sphere, box)
Definition at line 267 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
In case of a spherical neighborhood, radius of the sphere
Definition at line 268 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Parameter of the Geman and McClure's potential function
Definition at line 253 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Parameter of the Green's log-cosh potential function
Definition at line 254 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Parameter of the Hebert and Leahy's potential function
Definition at line 255 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Parameter of the piecewise Huber potential function
Definition at line 256 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Parameter of the relative difference potential function
Definition at line 252 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Type of the potential function used (e.g. quadratic)
Definition at line 251 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
When the proximity factors are the exponential distance squared, this is the characteristic distance
Definition at line 259 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
When the proximity factors follow a Gaussian distribution, this is the FWHM in mm
Definition at line 253 of file include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Type of weighting based on proximity (e.g. the inverse of the euclidian distance between voxels)
Definition at line 258 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
The number of voxels kept from the Bowsher's threashold
Definition at line 265 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Percentage of the neighborhood voxels for defining the most similar Bowsher neighbor voxels
Definition at line 263 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Type of weighting based on similarity (e.g. joint entropy)
Definition at line 262 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Number of voxels in a specific neighborhood. The index is on threads
Definition at line 273 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.
|
private |
Precomputation of the proximity factors. Index is on neighboring voxels, as for m2p_neighborhoodKernel
Definition at line 260 of file code/include/optimizer/iPenaltyMarkovRandomField.hh.