📄 rxxmutualinfoagent.h
字号:
// RxxMutualInfoAgent.h: interface for the RxxMutualInfoAgent class.//////////////////////////////////////////////////////////////////////////// Title: Header file for Mutual Information based registration//////////////////////////////////////////////////////////////////////////// Author: Ho Lee// 302-dong 314-2-ho Seoul National Univ.// Shinlim-dong, Kwanak-gu, Seoul, 151-742, Korea// (Email. holee@cglab.snu.ac.kr)// Update : // Last update : 2004/06/07////////////////////////////////////////////////////////////////////////#if !defined(AFX_RXXMUTUALINFOAGENT_H__8E70C580_D55B_4038_A942_2663C0F1EB3E__INCLUDED_)#define AFX_RXXMUTUALINFOAGENT_H__8E70C580_D55B_4038_A942_2663C0F1EB3E__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include "GlobalRegistPar.h"class RxMatrix4D;class RxProgressWnd;class RxxMutualInfoAgent {public: RxxMutualInfoAgent(); RxxMutualInfoAgent(_MODAL_INFO* pFloat, _MODAL_INFO* pRefer, UINT nInterpID, double lfGlobalSx,double lfGlobalSy,double lfGlobalSz); virtual ~RxxMutualInfoAgent(); void InitialJointHistogram(); BOOL FindOptimalLoc(unsigned short *pFltVol, unsigned short *pRefVol); double ComputeMI(double lfScaleX, double lfScaleY, double lfScaleZ, double lfTransX, double lfTransY, double lfTransZ, double thetaX, double thetaY, double thetaZ); RxMatrix4D MakeTransformMatrix(double lfTx, double lfTy, double lfTz, double lfSx, double lfSy, double lfSz, double lfRotX, double lfRotY, double lfRotZ); double VoxelBasedMI(unsigned short *pFltVol, unsigned short *pRefVol, double lfTx, double lfTy, double lfTz, double lfSx, double lfSy, double lfSz, double lfRotX, double lfRotY, double lfRotZ); double* GetJointHisto(){ return m_plfJointHisto;}; double m_lfTransX; double m_lfTransY; double m_lfTransZ; double m_lfRadX; double m_lfRadY; double m_lfRadZ; double m_lfRotX; double m_lfRotY; double m_lfRotZ; double m_lfScaleX; double m_lfScaleY; double m_lfScaleZ; _MODAL_INFO* m_pFloat; _MODAL_INFO* m_pRefer;protected: BOOL SaveResultsToFile(CString strResult); RxMatrix4D MakeRotationMatrix(_FPoint Rad); BOOL ControlProgress(RxProgressWnd *pProWnd); void PartialVolumeInterpolation(double lfTransformedX, double lfTransformedY, double lfTransformedZ, int nFltValue); void NearestInterpolation(double lfTransformedX, double lfTransformedY, double lfTransformedZ, int nFltValue); void TrilinearVolumeInterpolation(double lfTransformedX, double lfTransformedY, double lfTransformedZ, int nFltValue); void UpdateGradientInfo(double w, double CT_Mag, double Color_Mag); void ComputeGradientInfo(int nX, int nY, int nZ, int nTransX, int nTransY, int nTransZ); void ComputeSquareWeight(double *w, double xFract, double yFract, double zFract); double ComputeInfo(double fMapSize); double Prob_FR(int f, int r, double fJointSum); double Prob_F(int f, double fJointSum); double Prob_R(int r, double fJointSum); double ComputeMISub(); void KeepParameter(double lfScaleVectorX, double lfScaleVectorY, double lfScaleVectorZ, double lfTransX, double lfTransY, double lfTransZ, double RotX, double RotY, double RotZ); BOOL IsValid(double lfOriginX, double lfOriginY, double lfOriginZ, double lfTranformedX, double lfTransformedY, double lfTransformedZ); void UpdateJointHistogram(unsigned short nRefValue, unsigned short nFloatValue, double lfWeight); unsigned short GetRefValue(int nXRefIdx, int nYRefIdx, int nZRefIdx); void ComputeTransformedVector(double lfScaleX, double lfScaleY, double lfScaleZ, double lfTransX, double lfTransY, double lfTransZ, double thetaX, double thetaY, double thetaZ); void Empty(); int m_nLabelIdx; double m_lfGradientInfo; double m_lfRegionInPointCnt; double* m_plfJointHisto; double m_lfMaxMI; double m_lfRatioFltZ; double m_lfRatioRefZ; UINT m_nInterpID;private: double *m_plfProbF; double *m_plfProbR;};#endif // !defined(AFX_RXXMUTUALINFOAGENT_H__8E70C580_D55B_4038_A942_2663C0F1EB3E__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -