#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 <string>
|
#include <vector>
|
|
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<AiDetectResult>& results, std::string channel, unsigned long timeOut = 0xFFFFFFFF);
|
bool detect(unsigned char* image, int width, int height, int step, std::vector<AiDetectResult>& 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_;
|
};
|