#pragma once

#include "stdafx.h"
#include "ReferenceProc.h"
#include "MRegressionRGB.h"
#include "Tracking.h"

#define PARAM_FILE		"Info.csv"
#define OUTPUT_DIR		"output20101221"
#define OUTPUT_CV		"%s\\" OUTPUT_DIR "\\cv%03d.jpg"
#define TRACK_POINTS	5	// 舌形状 追跡ポイント数
#define PROC_FRAMES_S	31	// 処理枚数（短）
#define PROC_FRAMES_L	301	// 処理枚数（長）
#define FRAME_REF_CONVERT_DIM	4	// フレームから参照へ色変換する次数

class CAnalysis
{
private:
// パラメータの宣言
	CReferenceProc *m_RefProc;
	CDetectCasmatch *m_Casmatch;
	CTracking *m_Tracker;
	CvPoint m_InitTrack[TRACK_POINTS];	// 舌形状 初期座標
	int m_NumProcFrames;
	int m_FrameScale;
	CvScalar m_ROILabT1[4];
	CvScalar m_ROILabT2[4];
	CvScalar m_ROILabT3[4];
	CvScalar m_ROILabT4[4];

// メソッドの宣言
private:
	bool GlobalInit();
	bool ReadProcList();
	int MeasurementProc(const char *path, const char *file);
	int FrameProc(const char *inputfile, const char *path, const int frame, FILE *fpLog);
	int ReadParam(const char *path);
	int GetNumFrames(const char *path, const char *file);

public:
	CAnalysis(void);
	~CAnalysis(void);
	bool GlobalProc();
};
