101 lines
2.3 KiB
C++
101 lines
2.3 KiB
C++
/*
|
||
* @Date: 2024-09-02 09:59:09
|
||
* @LastEditors: Jacky
|
||
* @LastEditTime: 2024-09-14 08:28:05
|
||
* @FilePath: /GeneralTracker/BufferPool/MemoryManage.h
|
||
*/
|
||
#ifndef MEMORYMANAGE_H
|
||
#define MEMORYMANAGE_H
|
||
|
||
#include <list>
|
||
#include "IMemoryPool.h"
|
||
#include "PlatformDefine.h"
|
||
#include "NeoArithStandardDll.h"
|
||
|
||
#define DETECT_OBJECT_NAME "DETECT_OBJECT"
|
||
#define TRACK_OBJECT_NAME "TRACK_OBJECT"
|
||
#define AI_OBJECT_NAME "AI_OBJECT"
|
||
|
||
#define Y16_NAME "Y16"
|
||
#define YUV_NAME "YUV"
|
||
#define Y16Y8_NAME "Y16Y8"
|
||
|
||
enum ObjectName{
|
||
DETECT_OBJEC = 0,
|
||
TRACK_OBJECT,
|
||
AI_OBJECT,
|
||
};
|
||
|
||
//默认参数,可以调用SetImageInfo函数修改
|
||
//红外缓冲区
|
||
#define IR_IMAGE_WIDTH 640
|
||
#define IR_IMAGE_HEIGHT 512
|
||
#define IR_PIX_BYTE 2
|
||
#define IR_IMAGE_LENGTH (IR_IMAGE_WIDTH * IR_IMAGE_HEIGHT * IR_PIX_BYTE)
|
||
|
||
//可见光缓冲区
|
||
#define VI_IMAGE_WIDTH 1920
|
||
#define VI_IMAGE_HEIGHT 1080
|
||
#define VI_PIX_BYTE 3
|
||
#define VI_IMAGE_LENGTH (IR_IMAGE_WIDTH * IR_IMAGE_HEIGHT * IR_PIX_BYTE)
|
||
|
||
//检测算法
|
||
#define TARGET_MAX 10
|
||
struct TargetInfo
|
||
{
|
||
int iX;
|
||
int iY;
|
||
int iW;
|
||
int iH;
|
||
TargetInfo() {}
|
||
};
|
||
struct DetectObject{
|
||
int iTargetNumber;
|
||
TargetInfo ti[TARGET_MAX];
|
||
DetectObject(){
|
||
iTargetNumber = 0;
|
||
}
|
||
};
|
||
|
||
//跟踪算法
|
||
typedef struct {
|
||
ARIDLL_INPUTPARA trackInputPara;
|
||
ARIDLL_OUTPUT trackOutput;
|
||
}TrackObject;
|
||
|
||
//AI算法
|
||
struct AiObject{
|
||
int iTest;
|
||
};
|
||
|
||
/**
|
||
* 内存管理类
|
||
* 功能:1.定义用于保存一帧图像数据格式(包括可能存在的各种格式,如Y16. Y8, YUV, RGB等),
|
||
* 不区分红外可见光
|
||
* 2.定义一帧图像附带的图像信息(包括算法结果、检测结果等)
|
||
*
|
||
*/
|
||
|
||
class MemoryManage
|
||
{
|
||
public:
|
||
typedef struct {
|
||
int width;
|
||
int height;
|
||
GD_PIXEL_FORMAT_E format;
|
||
std::string name;
|
||
}image_info_t;
|
||
|
||
static MemoryManage *getInstance();
|
||
//1、add image, such as Y16 Y8 Y16Y8
|
||
void addImageInfo(const std::string strOjectName, int iWidth, int iHeight, GD_PIXEL_FORMAT_E enumFormat);
|
||
//2. call init function.
|
||
void MemoryInit(int iSize = 50);
|
||
private:
|
||
MemoryManage();
|
||
int m_iSize;
|
||
std::map<std::string, image_info_t > m_buffImageMap;
|
||
};
|
||
|
||
#endif // MEMORYMANAGE_H
|