#ifndef CASICIRISINTERFACE_H #define CASICIRISINTERFACE_H #include "CasicIrisInfo.h" #include "CasicSegPostProcess.h" #include "CasicIrisUtil.h" #include "CasicIrisRec.h" #include "utils/UtilInclude.h" namespace casic { namespace iris { class CasicIrisInterface { public: ~CasicIrisInterface(); CasicIrisInterface(const CasicIrisInterface&)=delete; CasicIrisInterface& operator=(const CasicIrisInterface&)=delete; static CasicIrisInterface& getInstance() { static CasicIrisInterface instance; return instance; } CasicIrisInfo findEye(CasicIrisInfo irisInfo); CasicIrisInfo findAndCutEye(CasicIrisInfo irisInfo); CasicIrisInfo irisQualityAssess(CasicIrisInfo irisInfo); CasicIrisInfo irisCodeExtract(CasicIrisInfo irisInfo); CasicIrisInfo irisEncode(CasicIrisInfo irisInfo); QByteArray extractFeature(CasicIrisInfo irisInfo); float calculateMatchScore(CasicIrisFeature feature, CasicIrisInfo irisInfo); float calculatePairPoints(QByteArray feature, QByteArray other); void setCascadeFile(QString filename); void setMinEyeSize(int minEyeSize); void setMaxEyeSize(int maxEyeSize); private: CasicIrisInterface(); std::string cascadeName = "./model/haarcascade_eye.xml"; const char * gaborFilterFileName = "./model/filters.txt"; const char * applicationPointsFileName = "./model/points.txt"; int minEyeSize = 320; int maxEyeSize = 480; float cutRatio = 0.72f; // 裁剪比率 用于裁剪更大比例的眼部图像 cv::CascadeClassifier * cascade; iristrt::CasicIrisRec rec; }; } } #endif // CASICIRISINTERFACE_H