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.

60 lines
1.9 KiB
C++

#ifndef _H_ICOMPAREMODEL_H_
#define _H_ICOMPAREMODEL_H_
#include <opencv2/opencv.hpp>
#include <opencv2/opencv_modules.hpp>
#include <string>
#include <vector>
/*ÂÖì±Ä£°åÆ¥ÅäÀà½Ó¿Ú*/
using namespace cv;
using namespace std;
class ICompareModel
{
public:
explicit ICompareModel() {};
virtual ~ICompareModel() {};
virtual double compare(Mat srcImage, Mat* pRImg = NULL, int levelNum = 1, bool isFilterSize = true, int flag = 0,
double md_diameter = 0, double md_height = 0) = 0;
virtual Mat getBaseImg() const = 0;
virtual void setIsEnableCache(bool val) = 0;
virtual double getDisThre() const = 0;
virtual void setDisThre(double val) = 0;
virtual void saveImages(string dirPath) = 0;
virtual bool save2file(string filePath) = 0;
virtual bool readFromFile(string filePath) = 0;
virtual void train(const vector<Mat>& vec) = 0;
virtual int getRepeatNum() const = 0;
virtual void setRepeatNum(int val) = 0;
virtual string getName() const = 0;
virtual void setName(string val) = 0;
virtual double getDisStdDev() const = 0;
virtual double getDisMean() const = 0;
virtual double getDisMin() const = 0;
virtual double getDisMax() const = 0;
virtual double getInnerCircleNum() const = 0;
virtual double getFalseSampleMinDis() const = 0;
virtual double getMeanDiamter() const = 0;
virtual int computeRepeatNum() = 0;
virtual int computeRepeatNum(const Mat& img) = 0;
virtual double filterTrainImage(const Mat &img) = 0;
virtual void weightOptimization(const vector<Mat>& falseSamples) = 0;
virtual void calculateAllParams(const vector<Mat>& imgVec) = 0;
virtual void computeDisThre(const vector<Mat>& imgVec, double* pMinDis = NULL, double md_diameter = 0, double md_height = 0) = 0;
virtual cv::Mat getM8uMaskImg() const = 0;
virtual void setM8uMaskImg(cv::Mat val) = 0;
virtual cv::Mat getM32fMaskImg() const = 0;
virtual void setM32fMaskImg(cv::Mat val) = 0;
};
#endif