📄 mutualinfosm.h
字号:
// MutualInfoSM.h: interface for the LHMutualInfoSM class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_MUTUALINFOSM_H__2E70EC76_E608_418D_B36B_9724DE528964__INCLUDED_)#define AFX_MUTUALINFOSM_H__2E70EC76_E608_418D_B36B_9724DE528964__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include "GlobalRegistPar.h"class RxMatrix4D;class LHMutualInfoSM {public: LHMutualInfoSM(_MODAL_INFO* pFltInfo, _MODAL_INFO* pRefInfo); LHMutualInfoSM(); virtual ~LHMutualInfoSM(); double VoxelBasedMI( double lfT); void InitialTransformParameters(); RxMatrix4D MakeTransformMatrix(_TransformParameters _OptTransformPar); _TransformParameters GetOptTransformPar(){ return m_OptTransformPar;} void SetOptTransformPar(_TransformParameters _OptTransformPar){ m_OptTransformPar = _OptTransformPar; } void GetOptTransformPar(double &lfSx, double &lfSy, double &lfSz, double &lfRx, double &lfRy, double &lfRz, double &lfTx, double &lfTy, double &lfTz); void SetDirection(int iDirection){ m_iDirection = iDirection; }; void SetSubSampLevel(int iSubSampLevel){ m_iSubSampLevel = iSubSampLevel; }protected: // void PartialVolumeInterpolation(float fTransformedX, float fTransformedY, float fTransformedZ, BYTE nFltValue); void PartialVolumeInterpolation(double fTransformedX, double fTransformedY, double fTransformedZ, BYTE nFltValue); void NearestInterpolation(double lfTransformedX, double lfTransformedY, double lfTransformedZ, BYTE nFltValue); void TrilinearVolumeInterpolation(double lfTransformedX, double lfTransformedY, double lfTransformedZ, BYTE nFltValue); BOOL ComputeRMSE(CString strFilename, int nCnt); BOOL SaveResultsToFile(CString strResult); BOOL SaveResultsToFile(CString strFile, CString strResult); void ComputeSquareWeight(double *w, double xFract, double yFract, double zFract); double Prob_FR(int f, int r, double fJointSum); double Prob_F(int f, double fJointSum); double Prob_R(int r, double fJointSum); private: double m_lfMaxMI; CString OutputToString(_TransformParameters _OptTransformPar, double lfHf, double lfHr, double lfHfr, double lfMI, double lfMin); BOOL IsValid(int nX, int nY, int nZ); BYTE* ConversionData(unsigned short* pusVol, int iX, int iY, int iZ, int& nMaxSize); double ComputeMI(); void UpdateJointHistogram(BYTE nFltValue, BYTE nRefValue, float& fWeight); BYTE* m_pbyRefVol; BYTE* m_pbyFltVol; int m_iJointHistoY; int m_iJointHistoX; int m_iDirection; _TransformParameters m_OptTransformPar; _MODAL_INFO* m_pFltInfo; _MODAL_INFO* m_pRefInfo; double m_lfJointHistoSize; float* m_plfJointHisto; float m_fWeight[8]; double m_lfRatioFltZ; double m_lfRatioRefZ; UINT m_nInterpID; int m_iSubSampLevel;};#endif // !defined(AFX_MUTUALINFOSM_H__2E70EC76_E608_418D_B36B_9724DE528964__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -