Files
2026-02-01 22:23:06 +08:00

101 lines
2.3 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* @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