#pragma once #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include using namespace cv; using namespace std; using namespace Ort; #define SEG_IMAGE_SIZE 512 #define LINE_HEIGH 120 #define LINE_WIDTH 1600 #define CIRCLE_RADIUS 250 //#define METER_RANGE 9 class DoublePointerCountALGO { public: void Init(bool isCuda); int detect(Mat& cv_image); Mat creat_line_image(const Mat& circle,int Radius, int RingStride); int get_meter_reader(const Mat& image); private: int inpWidth; int inpHeight; int outWidth; int outHeight; const float pi = 3.1415926536f; const int circle_center[2] = { 256, 256 };//300,238 300,255 const float mean[3] = {0,0,0}; const float stds[3] = {0.9f,0.9f,0.9f}; Env env = Env(ORT_LOGGING_LEVEL_ERROR, "u2net"); Ort::Session* ort_session = nullptr; SessionOptions sessionOptions = SessionOptions(); vector input_names; vector output_names; vector> input_node_dims; // >=1 outputs vector> output_node_dims; // >=1 outputs };