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.

77 lines
2.0 KiB
C++

#ifndef _H_MODELMANAGER_H_
#define _H_MODELMANAGER_H_
#include "qstring.h"
#include "qmap.h"
#include <vector>
#include "cv.h"
#include "qstringlist.h"
#include "IWheelModel.h"
#include <QVariantMap>
#include <QJsonObject>
class IWheelModel;
struct CmpByValue {
bool operator()(const std::pair<std::string, double> & lhs, const std::pair<std::string, double> & rhs)
{
return lhs.second < rhs.second;
}
};
struct modelInfo
{
double md_diameter;
double md_height;
std::vector<cv::Mat> mpAllImage;
};
class ModelManager
{
public:
explicit ModelManager(QString strRoot);
virtual ~ModelManager();
bool init();
IWheelModel *getModel(QString str);
QString getModelPicPath(QString str);
bool addModel(QString);
bool addModel(IWheelModel *);
bool reName(QString strOld, QString strNew);
QJsonObject readJson(QString strFile);
void writeJson(QString strFile, QJsonObject rootObj);
IWheelModel *createModel();
bool delModel(QString);
bool modModel(QString);
bool saveModel(QString);
bool saveAllModel();
bool ClearAllCount();
QStringList getNoDetectModelName();//获取所有未检测模板名
QStringList getDetectModelName();//获取所有检测模板名
QStringList getAllModelName();//获取所有模板名
QStringList getAllTrainModelName(); //获取所有加入训练的模板名
bool setAllModelsState(bool state);
bool setRestDetect();
QMap<QString, IWheelModel*> getDetectModelMap();
QMap<QString, IWheelModel*> *getAllModelMapPtr();
QMap<QString, std::vector<cv::Mat>> getAllModelImage();
QMap<QString, cv::Mat> getAllImgsExcSelf(QString strName = QString());
std::vector<cv::Mat> getFirstImgFromFalse(QString strName = QString());
std::vector<cv::Mat> getAllModelImageExcSelf(QString strName = QString());
std::vector<modelInfo> getAllTarImgs(std::vector<QString> strName);
class TempImage *getTmpImage(QString str);
class TempImage *getTrainImage(QString str);
private:
QVariantMap genDbMap(IWheelModel* val);
private:
QMap<QString, IWheelModel*> m_mpModels;
class ModelMgrDB* m_pModelDB;
QString m_strRoot;
};
#endif