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++
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
|
|
|
|
|
|
|