📄 rxxpowellmethod.h
字号:
// RxxPowellMethod.h: interface for the RxxPowellMethod class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_RXXPOWELLMETHOD_H__46E7FFD1_5632_4856_BA09_F78CEE3081EE__INCLUDED_)#define AFX_RXXPOWELLMETHOD_H__46E7FFD1_5632_4856_BA09_F78CEE3081EE__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include "RxxMutualInfoAgent.h"#define CIRCLEDEGREE 3.141592/180#define FULLCOUNTER 3#define EMPTYCOUNTER 0class JJDistanceMap;class JJBinaryVolume;class RxMatrix4D;class RxProgressWnd;class RxxPowellMethod : public RxxMutualInfoAgent{public: RxxPowellMethod(); RxxPowellMethod(_MODAL_INFO* pFloat, _MODAL_INFO* pRefer, double lfGlobalScaleX, double lfGlobalScaleY, double lfGlobalScaleZ, double lfGlobalRotateX, double lfGlobalRotateY, double lfGlobalRotateZ, int nLabelIdx, UINT nInterpID); RxxPowellMethod(JJDistanceMap* pRefDistanceMap, JJBinaryVolume* pFloatBinaryVolume, short* pListX, short* pListY, short* pListZ, unsigned long nNum, double BoundingBoxX, double BoundingBoxY, double BoundingBoxZ); virtual ~RxxPowellMethod(); void FindTransformVector(); void FindOptimalTransformationForNoduleRegistration(int nDistanceMode); void FindOptimalTransformationWithSDM(); void FindOptimalTransformation(short nDistanceMode); double AverageDistanceDifference(short nDistanceMode, short nParameterNum, double lfValue); double StdDistanceDifference(short nDistanceMode, double lfTx, double lfTy, double lfTz, double lfSx, double lfSy, double lfSz, double lfRadX, double lfRadY, double lfRadZ); double AverageNoduleDistance(double lfTx, double lfTy, double lfTz, double lfSx, double lfSy, double lfSz, double lfDegX, double lfDegY, double lfDegZ); void KeepParameter(short nParameterNum, double lfValue); void KeepParameterForNR(double lfScaleVectorX, double lfScaleVectorY, double lfScaleVectorZ, double lfTransX, double lfTransY, double lfTransZ, double RotX, double RotY, double RotZ); float TLInterPolation(float x, float y, float z, int iX, int iY, int iZ, BYTE* pRefImg); double NearestInterpolation(double lfTransformedX, double lfTransformedY, double lfTransformedZ, unsigned char* pMap); double PartialVolumeInterpolation(double lfTransformedX, double lfTransformedY, double lfTransformedZ, unsigned char* pMap); void ComputeSquareWeight(double *w, double xFract, double yFract, double zFract); void ControlProgress(RxProgressWnd* pProWnd); RxMatrix4D MakeRotationMatrix(_FPoint Rot); void CalculateNoduleCorrespondence(double lfTx, double lfTy, double lfTz, double lfSx, double lfSy, double lfSz, double lfDegX, double lfDegY, double lfDegZ); int FloatNoduleNumber(int RefNoduleNumber);protected: double IncreaseTransXvector(double lfPresentMI, double lfIncT); double IncreaseTransYvector(double lfPresentMI, double lfIncT); double IncreaseTransZvector(double lfPresentMI, double lfIncT); double DecreaseTransXvector(double lfPresentMI, double lfIncT); double DecreaseTransYvector(double lfPresentMI, double lfIncT); double DecreaseTransZvector(double lfPresentMI, double lfIncT); double CWRotXvector(double lfPresentMI, double lfIncR); double CWRotYvector(double lfPresentMI, double lfIncR); double CWRotZvector(double lfPresentMI, double lfIncR); double CCWRotXvector(double lfPresentMI, double lfIncR); double CCWRotYvector(double lfPresentMI, double lfIncR); double CCWRotZvector(double lfPresentMI, double lfIncR); int m_nTransXCnt; int m_nTransYCnt; int m_nTransZCnt; int m_nRotXCnt; int m_nRotYCnt; int m_nRotZCnt; double m_lfGlobalScaleX; double m_lfGlobalScaleY; double m_lfGlobalScaleZ; double m_lfGlobalRotateX; double m_lfGlobalRotateY; double m_lfGlobalRotateZ; int m_nCount;public: JJDistanceMap* m_pRefDistanceMap; JJBinaryVolume* m_pFloatBinaryVolume; 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_lfOptimizedScaleX; double m_lfOptimizedScaleY; double m_lfOptimizedScaleZ; double m_lfShearX; double m_lfShearY; double m_lfShearZ; double m_lfBoundingBoxX; double m_lfBoundingBoxY; double m_lfBoundingBoxZ; double m_lfMaxCC; double m_lfMaxNoduleDistance; _MODAL_INFO* m_pFloat; _MODAL_INFO* m_pRefer; short * m_pEdgeListX; short * m_pEdgeListY; short * m_pEdgeListZ; unsigned long m_nNumEdge; double m_lfRegistrationTime; double m_lfTempTime; double m_lfTempCC; double m_lfTempNoduleDistance; int m_arrNoduleMapping[1000]; double m_lfSurfaceAccuracyIR; double m_lfNoduleAccuracyIR;// Temporary Useprivate: double m_lfTranslateXofFlt; double m_lfTranslateYofFlt; double m_lfTranslateZofFlt; double m_lfThetaX; double m_lfThetaY; double m_lfThetaZ;};#endif // !defined(AFX_RXXPOWELLMETHOD_H__46E7FFD1_5632_4856_BA09_F78CEE3081EE__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -