#pragma once #include #include #include #include #include #include #include #include #include #include #include "cwt.h" #include "cwt_emxAPI.h" #include "cwt_terminate.h" #include "rt_nonfinite.h" #include #include #include "rtwtypes.h" #include "omp.h" #include "cwt_types.h" #include "CameraArguments.h" using namespace std; using namespace cv; typedef unsigned char byte; # define PI acos(-1) class CoreAlgorithm { private: Mat image, tmp, hsv, lab; vector rgbChannel, hsvChannel; int minX = 0, maxX = 0, minY = 0, maxY = 0; int rows, cols; CameraArguments *cArg; vector coordinate; vector color; private: static Mat OtsuAlgThreshold(Mat &src); static vector DeBruijn(int k, int n); void Reconstruction(vector> maximas, vector> minimas, vector> colorLabel, vector> phases,const Mat &Hc1, Mat Hp2, const double *map); public: CoreAlgorithm(const std::string &path, CameraArguments *cArgs); ~CoreAlgorithm(); void run(); void saveCoordinate(); vector getCoordinates(); };