You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
valvedetect/3part/Cyclops/include/MultiScaleImageCompareModel.h

75 lines
1.7 KiB
C

/*! \file MultiScaleImageCompareModel.h
\brief A brief file description.
A more elaborated file description.
Created: 2017/02/24, author: bang.jin.
*/
#ifndef __MultiScaleImageCompareModel_h_
#define __MultiScaleImageCompareModel_h_
#include "MultiScaleObj.h"
#include <vector>
#include "ImageCompareModel.h"
using std::vector;
class MultiScaleImageCompareModel : public MultiScaleObj
{
public:
MultiScaleImageCompareModel(int levelNum = 2, float scaleStep = 0.5)
: MultiScaleObj(levelNum, scaleStep)
{
}
~MultiScaleImageCompareModel()
{
clear();
}
void setBaseLevel(const ImageCompareModel* pModel);
void genMultiScale();
const ImageCompareModel* getCmpModel(int level);
void clear();
void proc(void *pData);
protected:
vector<ImageCompareModel*> mMultiScaleModels;
private:
};
class ImageCompareData
{
public:
ImageCompareData(MultiScaleImage* pMSI)
: mpMSI(pMSI)
, mStartAngle(0)
, mEndAngle(360)
, mAngleRange(90)
{}
MultiScaleImage* getMSI() const { return mpMSI; }
void setMSI(MultiScaleImage* val) { mpMSI = val; }
float getStartAngle() const { return mStartAngle; }
void setStartAngle(float val) { mStartAngle = val; }
float getEndAngle() const { return mEndAngle; }
void setEndAngle(float val) { mEndAngle = val; }
float getAngleRange() const { return mAngleRange; }
void setAngleRange(float val) { mAngleRange = val; }
ImageCompareModel::RotateData* getRotateData() { return &mRotateData; }
protected:
MultiScaleImage* mpMSI;
ImageCompareModel::RotateData mRotateData;
float mStartAngle, mEndAngle;
float mAngleRange;
};
#endif // __MultiScaleImageCompareModel_h_