#ifndef CASIC_SEG_POST_PROCESS #define CASIC_SEG_POST_PROCESS #include <opencv2/opencv.hpp> #include "CasicSegResult.h" namespace iristrt { class CasicSegPostProcess { public: bool postProcess(cv::Mat & mask, cv::Mat & iris, cv::Mat & pupil, std::vector<int> & irisCircle, std::vector<int> & pupilCircle); private: std::vector<cv::Mat> getConnections(cv::Mat input, int connectivity); void showConnections(std::vector<cv::Mat> conns); std::vector<CasicTriplet> getTripleSet(std::vector<cv::Mat> maskConns, std::vector<cv::Mat> irisConns, std:: vector<cv::Mat> pupilConns, int chessboardDistance); void showTriple(CasicTriplet triple); int getChessboardDistance(cv::Mat con1, cv::Mat con2, int chessboardDistance); CasicTriplet getMaxTriple(std::vector<CasicTriplet> tripleSet); std::vector<int> leastSquareCircleFitting(std::vector<cv::Point> counter); }; // end of class CasicSegPostProcess } // end of namespace iristrt #endif