#pragma once

#include "stdafx.h"

class CMRegression
{
protected:
	int   m_Dim;	// 次元数
	int   m_N;		// サンプル数
	CvMat *m_Coef;	// 係数行列
	CvMat *m_Error;	// 推定誤差

protected:
	CvMat *GenDataMat(const CvMat *data);

public:
	CMRegression(const int dim);
	~CMRegression(void);
	virtual bool CalcCoef (const CvMat *data, const CvMat *observ);
	virtual bool CalcError(const CvMat *data, const CvMat *observ);
	virtual double GetX(const CvMat *mat, const int sample, const int index) = NULL;
	virtual CvMat    *GenConvert(const CvMat    *data);
	virtual IplImage *GenConvert(const IplImage *data);
	bool DrawGraph4913(CvMat *rgb, CvMat *xyz);
	CvMat *Coef() { return m_Coef; };
	CvScalar ScalarConvert(const CvScalar data);
};
