(normalized) mutual information based on histogram or parzen window default is normalised mi and histogram gray level preprocess and PDF estimation weight pixel added 1. set test / ref image 2. set sample physical -> sample interval 3. compute similarity: 1) For SEMI/MMI +++++ resample test image -> sample physical ++++++ IMPORTANT (for FFD registration to use pre-transform) 2) reset sample interval  
More...
Public Member Functions | 
| 
  | zxhMetricMI (void) | 
|   | constructor 
  | 
|   | ~zxhMetricMI (void) | 
| 
virtual std::string  | GetMetricType () | 
|   | GetMetricType()=0. 
  | 
| virtual zxhMetricBase *  | Clone (zxhMetricBase *&pRet) | 
| 
virtual bool  | PreComputeImageGraylevel () | 
|   | pre-computation for Image GraySpan before using this object, this make the method better 
  | 
| virtual bool  | SetImage (zxhImageData *pImageTest, zxhImageData *pImageRef) | 
| virtual int  | ComputeHistogramFromPDF4D (zxhlfloat *&afPDF, zxhlfloat &fTotalFreq, float xfTestFrom, float xfTestTo, float yfTestFrom, float yfTestTo, float zfTestFrom, float zfTestTo, float tfTestFrom, float tfTestTo) | 
| 
virtual int  | ComputeHistogramMaskRegionOnTest (zxhImageData *pMask, zxhlfloat *&afPDF, zxhlfloat &fFreq) | 
|   | within roi 
  | 
| 
virtual int  | ComputeHistogram (zxhlfloat *&afHistogram, zxhlfloat &fTotalFreq) | 
| virtual int  | GetValue (zxhlfloat &fValue) | 
| 
virtual zxhlfloat  | GetMIValue (const zxhlfloat *afHistogram, const zxhlfloat fTotalFreq) | 
| 
virtual void  | AddHistogram (zxhlfloat *afHistogramDes, const zxhlfloat *afHistogramSrc, int times=1) | 
| 
virtual void  | GetAddHistogram (zxhlfloat *afHistogramDes, zxhlfloat *afHistogramSrc1, zxhlfloat *afHistogramSrc2) | 
| void  | SetNumberOfHistogramBins (int i=32) | 
| int  | GetNumberOfHistogramBins () | 
| void  | SetPDFType (enum zxh::TypeHistogramCompute i) | 
| 
void  | SetMMILambda (float f) | 
| 
float  | GetMMILambda () | 
| 
void  | SetMMISamplePhysical (float *f) | 
| 
const float *  | GetMMISamplePhysical () | 
| 
void  | SetMMILocalRegionSizeInMM (float f) | 
| 
void  | SetMMIKernelType (enum zxh::TypeSEMIKernelFunction type) | 
| 
void  | SetMMI (bool b) | 
| 
bool  | GetIsMMI () | 
| void  | SetMIType (enum zxh::TypeMutualInformation i) | 
| 
enum zxh::TypeMutualInformation  | GetMIType () | 
| virtual std::string  | GetPrintString () | 
| virtual bool  | SetMetricFromStream (std::ifstream &ifs) | 
| 
virtual int  | ComputeConstanceForGradient () | 
Static Public Attributes | 
| 
static const int  | m_stc_iPaddedBins = BSplineHistogramPaddingBins | 
|   | padded bin for the parzen windows 
  | 
Protected Member Functions | 
| 
float  | SEMIKernelDistanceToWeight (float dis) | 
| 
int  | GetLengthOfHistogramDim () | 
| 
void  | IntensityBoundBk (float &gray, const short aiImageGraySpan[]) const  | 
| 
void  | IntensityBoundBk (zxhlfloat &gray, const short aiImageGraySpan[]) const  | 
| 
void  | IntensityBound (zxhlfloat &gray, const short aiImageGraySpan[]) const  | 
| 
void  | IntensityBound (float &gray, const short aiImageGraySpan[]) const  | 
| 
virtual void  | EvaluateOnJointHistogram (zxhlfloat &fTotalFreq, zxhlfloat *afPDF, int iLengthOfHistogramDim, zxhlfloat fGrayTest, zxhlfloat fGrayRef, zxhlfloat weight=1) | 
|   | evaluate the contribution of current pixel pair to the joint histogram table 
  | 
| virtual void  | EvaluateOnPixelSource2TargetForce (zxhlfloat *afForce, int iLengthOfHistogramDim, const float *gridCoTest, const float *gridCoRef) const  | 
|   | sumup (1+log p)*w_l(I_t)*dw_k(I_s)*dI_s/d(T) without -1/N (have not test yet), NOT USED NOW  
  | 
| float  | BSplinei (int iOrd, float u) | 
| float  | DerivativeOfBSplinei (int iOrd, float u) | 
| 
zxhlfloat  | ComputMMILocalRegionPDFValue (zxhlfloat *afHistL, zxhlfloat &fVl, const zxhlfloat *afHistG, const zxhlfloat fVg) | 
|   | MixtureMI fVg = fVALL-fVl. 
  | 
| 
void  | EvaluateMMIpositionWeightedHistogram (int *roiFrom, int *roiTo, float *WorldCentre, zxhlfloat *afHistogram, zxhlfloat &fTotalFreq, int *excludeFrom, int *excludeTo) | 
| 
void  | EvaluateMMIpositionWeightedHistogram (int *roiFrom, int *roiTo, float *WorldCentre, zxhlfloat *afHistogram, zxhlfloat &fTotalFreq, zxhImageData *pExcludeImageMask) | 
Protected Attributes | 
| enum zxh::TypeMutualInformation  | m_iComputePDType | 
| 
float  | m_fMMILambda | 
| 
float  | m_afMMISamplePhysical [ImageDimensionMax] | 
| 
float  | m_fMMILocalRegionSizeInMM | 
|   | mm local region size = 6*gausian sigma, 4*bspline spacing 
  | 
| 
enum zxh::TypeSEMIKernelFunction  | m_iMMIKernelType | 
| 
zxhImageData  | m_imgMMItestImage | 
| 
zxhImageData  | m_imgMMIrefImage | 
| 
zxhImageDataT< float >  | m_imgMMIWeighttestref | 
| enum zxh::TypeHistogramCompute  | m_iPDFType | 
| enum zxh::TypeMutualInformation  | m_iMIType | 
| int  | m_iNumberOfHistogramBins | 
| 
PixelTypeDefault  | m_aiImageTestGraySpan [2] | 
|   | for test image gray level min and max 
  | 
| 
PixelTypeDefault  | m_aiImageRefGraySpan [2] | 
|   | for ref image gray level min and max 
  | 
| 
zxhlfloat  | m_fBinSizeTestImage | 
| 
zxhlfloat  | m_fBinSizeRefImage | 
| zxhlfloat  | m_fEntropyT | 
| zxhlfloat  | m_fEntropyR | 
| zxhlfloat  | m_fEntropyJ | 
| 
zxhlfloat  | m_fMutualInformation | 
| 
zxhlfloat  | m_fNormalisedMutualInformation | 
| 
zxhlfloat *  | m_afPDFt | 
|   | probability distribution function 
  | 
| zxhlfloat *  | m_afPDFr | 
| zxhlfloat *  | m_afPDFj | 
| zxhlfloat *  | m_afHistogram | 
| 
zxhlfloat  | m_fTotalFreq | 
| zxhlfloat *  | m_afC_Ht | 
| zxhlfloat *  | m_afC_Hr | 
| zxhlfloat *  | m_afC_Hj | 
(normalized) mutual information based on histogram or parzen window default is normalised mi and histogram gray level preprocess and PDF estimation weight pixel added 1. set test / ref image 2. set sample physical -> sample interval 3. compute similarity: 1) For SEMI/MMI +++++ resample test image -> sample physical ++++++ IMPORTANT (for FFD registration to use pre-transform) 2) reset sample interval