#ifndef __OCR_ANGLENET_H__ #define __OCR_ANGLENET_H__ #include "OcrStruct.h" #include #include class AngleNet { public: ~AngleNet(); void setNumThread(int numOfThread); void setGpuIndex(int gpuIndex); void initModel(const std::string &pathStr); std::vector getAngles(std::vector &partImgs, const char *path, const char *imgName, bool doAngle, bool mostAngle); private: bool isOutputAngleImg = false; Ort::Session *session; Ort::Env env = Ort::Env(ORT_LOGGING_LEVEL_ERROR, "AngleNet"); Ort::SessionOptions sessionOptions = Ort::SessionOptions(); int numThread = 0; std::vector inputNamesPtr; std::vector outputNamesPtr; const float meanValues[3] = {127.5, 127.5, 127.5}; const float normValues[3] = {1.0 / 127.5, 1.0 / 127.5, 1.0 / 127.5}; const int dstWidth = 192; const int dstHeight = 48; Angle getAngle(cv::Mat &src); }; #endif //__OCR_ANGLENET_H__