#ifndef CASIC_IRIS_REC #define CASIC_IRIS_REC #define NORM_WIDTH 512 #define NORM_HEIGHT 64 #define M_PI 3.1415926535897323846 #include <QPair> #include <QByteArray> #include <opencv2/opencv.hpp> namespace iristrt { class CasicIrisRec { public: CasicIrisRec(); CasicIrisRec(const char * gaborFilterFileName,const char * applicationPointsFileName); ~CasicIrisRec(); cv::Mat normalize(cv::Mat image, int iris_x, int iris_y, int iris_r,int pupil_x, int pupil_y, int pupil_r); cv::Mat encodeToImage(cv::Mat normalizedImage); QByteArray extractFeature(cv::Mat irisCode, cv::Mat maskNorm); float matchImage(cv::Mat code1, cv::Mat code2, cv::Mat normalizedMask1, cv::Mat normalizedMask2); float matchFeatureCode(uchar * feature1, uchar * feature2); private: std::vector<cv::Mat> gaborFilters; cv::Mat applicationPoints; std::vector<QPair<int, int>> mvApplicationPoints; std::vector<cv::Mat> loadGaborFilters(const char * gaborFilterFileName); cv::Mat loadApplicationPoints(const char * applicationPointsFileName); cv::Mat addBorders(cv::Mat pSrc, int width); uchar ** reduceIrisCode(uchar * feature); uchar ** reduceIrisMask(uchar * feature); }; // end of class CasicIrisRec } // end of namespace iristrt #endif