📄 boosting.h
字号:
//////////////////////////////////////////////////////////////////////
//
// Boosting.h: interface for the Boosting class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BOOSTING_H__93E1F445_D44A_41A9_8669_927678532165__INCLUDED_)
#define AFX_BOOSTING_H__93E1F445_D44A_41A9_8669_927678532165__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "define.h"
#define BINNUM 3000
#define MaxIteration 1000
typedef struct{
POINT imageSize;
POINT pos;
POINT size;
int type;
}FeatureInfo;
class Boosting
{
public:
Boosting(DWORD, DWORD);
virtual ~Boosting();
void AdaBoost(int);
void TrainCascade();
// void Adaboost(int IterNum,int *WinArray,int *WinRol,int *WinCol,int count);
void Init(CString szPosName, CString szNegName);
FeatureInfo *subWinInfo;
private:
long PositiveNum;
long NegativeNum;
long TotalNegativeNum;
long TotalSampleNum;
int DiscretThreshold [MaxIteration];
double FinalThreshold;
int WeakLearnerNum;
int Sign[MaxIteration];
int SelectedFea[MaxIteration];
double apha[MaxIteration];
double Accuracy[MaxIteration];
double m_m_Error[MaxIteration];
// int BinNum;
double *BinMin;
double *BinWidth;
double *Weight;
unsigned char *Label;
WORD **FeaValue;
unsigned char *pSampleFlag;
long curNegNum;
double *VotedValue;
int usedFeaCount;
void WriteIterationResult(int i, double WeightedError,
double Recall1, double FalseAlarm1,
double Recall2, double FalseAlarm2,int);
void Discretization(float * RawValue, int FeatureNo);
double GetRawFeaValue(int FeaNo, int BinNo);
void UpdateHistClassify(double *MinCriterion, int *SelectedFeaNo, int *MinThreshold, int *MinSign);
int GetFeatureValue(int DataNo, int FeaNo);
int SimpleDiscretClassify(int DataNo, int iteration);
int StrongDiscretClassify(int DataNo, double tempThreshold);
void CheckAccuracy(double *Accuracy, double *FalseAlarm, double tempThreshold);
void CheckAccuracyWithVotedValue(double *Accuracy, double tempThreshold);
void CheckFalseAlarmWithVotedValue(double *FalseAlarm, double tempThreshold);
void AdjustThrehold(double AccuracyWanted, double FalseAlarmWanted,
double *PresentAccuracy0, double *PresentFalseAlarm0,
double *PresentAccuracy, double *PresentFalseAlarm,
double *ThresholdWanted);
void WriteModelResult(CString ResultFile, int nId, double, int,int);
void GetAllSubWinInfo(void);
void markSampleFlag(double FinalThreshold, unsigned char* &pSampleFlag);
};
#endif // !defined(AFX_BOOSTING_H__93E1F445_D44A_41A9_8669_927678532165__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -