#pragma once #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "opencv2/imgproc/types_c.h" #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 120 class DoubleTemperatureGuageALGO { private: const float pi = 3.1415926536f; const int circle_center[2] = { 270, 256 };//300,238 300,255 int METER_RANGE = 120; public: void Init(bool IsCuda); pair detect(Mat& cv_image, int MaxRange); Mat creat_line_image(const Mat& circle, int Radius, int RingStride); pair get_meter_reader(const Mat& image); private: int inpWidth; int inpHeight; int outWidth; int outHeight; const float mean[3] = { 0.5f,0.5f,0.5f }; const float stds[3] = { 0.5f,0.5f,0.5f }; 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 };