#pragma once #ifdef _WIN32 #ifdef AI_DETECT_EX_EXPORTS #define AI_DETECT_EX_API __declspec(dllexport) #else #define AI_DETECT_EX_API __declspec(dllimport) #endif #else #define AI_DETECT_EX_API #endif #include #include class AI_DETECT_EX_API AiDetectResult { public: int type; char typeName[64]; double x; double y; double width; double height; double score; }; // class AiDetectResult namespace cv { class Mat; } // namespace cv class ProcessController; class AI_DETECT_EX_API AiDetectEx { public: static AiDetectEx& instance(); bool startServer(); void stopServer(); bool detect(cv::Mat const & srcImage, std::vector& results, std::string channel, unsigned long timeOut = 0xFFFFFFFF); bool detect(unsigned char* image, int width, int height, int step, std::vector& results, std::string channel, unsigned long timeOut = 0xFFFFFFFF); std::string generateChannel(); void releaseChannel(std::string channel); AiDetectEx(const AiDetectEx&) = delete; AiDetectEx& operator=(const AiDetectEx&) = delete; private: AiDetectEx(); ~AiDetectEx(); bool isDisplay_; ProcessController* controller_; };