Files
CodeRepository/Projects/App_S3313/Src/gdParty/include/Arith_CommonDef.h

722 lines
21 KiB
C
Raw Normal View History

2026-02-01 22:23:06 +08:00
#ifndef _ARITH_COMMONDEF_
#define _ARITH_COMMONDEF_
/*********版权所有C2020武汉高德红外股份有限公司***************************************
* Arith_CommonDef.h
*
*
*
*
*
* 2020/12/05
*
*****************************************************************************************/
//外部系统状态(总体下发)
typedef enum tagGLB_SYS_MODE
{
GLB_SYS_WAIT = 0x01, // 空闲
GLB_SYS_STARE = 0x02, // 凝视
GLB_SYS_FSCAN = 0x03, // 扇扫
GLB_SYS_AUTO = 0x04, // 自主搜跟(无人值守)
GLB_SYS_SCAN = 0x05 // 周扫
}GLB_SYS_MODE;
// 场景模式
typedef enum tagGLB_SCEN_MODE
{
GLB_SCEN_SKY = 0x01, // 对空模式
GLB_SCEN_GROUND = 0x02, // 对地模式
GLB_SCEN_SEA = 0x03, // 对海模式
GLB_SCEN_NORMAL = 0x00 // 通用
}GLB_SCEN_MODE;
// 外引导来源
typedef enum tagGLB_GUIDE_SOURCE
{
GLB_GUIDE_RADAR = 0x01, //载机雷达
GLB_GUIDE_WARNINGPLANE = 0x02 //预警机
}GLB_GUIDE_SOURCE;
// 视频源
typedef enum tagGLB_VIDE_TYPE
{
GLB_VIDEO_IR_SW = 0x01,//红外短波
GLB_VIDEO_IR_MW = 0x02,//红外中波
GLB_VIDEO_IR_LW = 0x03,//红外长波
GLB_VIDEO_VL = 0x04 //电视
}GLB_VIDE_TYPE;
////像素类型
//typedef enum tagGLB_PT_TYPE
//{
// GLB_PT_UBYTE8 = 0, //无符号8位数据
// GLB_PT_UINT16 = 1, //无符号16位数据
// GLB_PT_SINT16 = 2, //有符号16位数据
// GLB_PT_RGB24 = 3, //RGB888
// GLB_PT_RGBA32 = 4, //RGBA8888
// GLB_PT_YUV_UYVY = 5, //YUV422_uyvy
// GLB_PT_YUV_NV12 = 6
//}GLB_PT_TYPE;
typedef enum _gd_pixel_format_e {
GD_PIXEL_FORMAT_NONE = 0,
GD_PIXEL_FORMAT_YUV420P,
GD_PIXEL_FORMAT_YUV422P,
GD_PIXEL_FORMAT_NV12,
GD_PIXEL_FORMAT_NV21,
GD_PIXEL_FORMAT_NV16,
GD_PIXEL_FORMAT_NV61,
GD_PIXEL_FORMAT_RGB_PLANAR,
GD_PIXEL_FORMAT_BGR_PLANAR,
GD_PIXEL_FORMAT_RGB_PACKED,
GD_PIXEL_FORMAT_BGR_PACKED,
GD_PIXEL_FORMAT_GRAY_Y8,
GD_PIXEL_FORMAT_GRAY_Y16,
GD_PIXEL_FORMAT_BUTT
} GD_PIXEL_FORMAT_E;
typedef struct _gd_video_frame_s {
unsigned int u32Width;
unsigned int u32Height;
GD_PIXEL_FORMAT_E enPixelFormat;
unsigned int u32Stride[3];
unsigned long long u64PhyAddr[3];
unsigned char* u64VirAddr[3];
} GD_VIDEO_FRAME_S;
// 捕控导引阶段定义(算法内部状态)
typedef enum tagGLB_STATUS
{
GLB_STATUS_UNKOWN = 0, //捕控导引阶段 - 未知
GLB_STATUS_WAIT = 1, //捕控导引阶段 - 待命状态
GLB_STATUS_SEARCH = 2, //捕控导引阶段 - 搜素状态
GLB_STATUS_TRACK = 3, //捕控导引阶段 - 跟踪
GLB_STATUS_SCAN = 4, //捕控导引阶段 - 周扫
GLB_STATUS_LOST = 5, //捕控导引阶段 - 跟踪丢失
GLB_STATUS_FSCAN = 6, //捕控导引阶段 - 扇扫
GLB_STATUS_MULTRACK = 9, //多目标跟踪状态
GLB_STATUS_AIM = 10 //内校轴阶段
}GLB_STATUS;
// 目标检测算法标识
typedef enum tagemObjSrc
{
Arith_DST = 1,
Arith_DAT = 2,
Arith_AI = 3,
Arith_KCF = 4,
Arith_TLD = 5,
Arith_Manual = 6
}emObjSrc;
// 尺度模式
typedef enum tagSizeType
{
unKnown, //不确定目标或未识别尺寸类型
DimTarget, //弱小目标
SmallTarget, //小目标
MiddleTarget, //临界目标
AreaTarget //面目标
}SizeType;
// 灰度模式
typedef enum tagGrayType
{
BrightTarget = 1, //亮目标
DarkTarget = 2, //暗目标
AllGray = 3 //亮暗目标
}GrayType;
// 目标跟踪状态
typedef enum tagTrackingStatus
{
NOT_TRACKING = 0,//未跟踪
STABLE_TRACKING = 1,//稳跟
MEM_TRACKING = 2//记忆跟踪
}TrackingStatus;
// 遮挡事件等级判断
typedef enum tagOccLev
{
NO_OCC = 0,//无遮挡
SIM_OCC = 1,//轻微遮挡
MID_OCC = 2,//中等遮挡
FULL_OCC = 3//完全遮挡
}OccLev;
// 目标形变事件
typedef enum tagShapeTransLev
{
NO_ShapeTrans = 0,//无形变
MID_ShapeTrans = 1,//轻微形变
FULL_ShapeTrans = 2//显著形变
}ShapeTransLev;
// 跟踪事件(可包含所有跟踪期间需要特殊处理的事件
// 如强制记忆跟踪、遮挡、形变、变焦、变倍等)
typedef struct tagTrackEvent
{
OccLev occ;
ShapeTransLev shapeTrans;
}TrackEvent;
////////////////////////////////////////////////////////////////////////////////
// 系统符号定义
////////////////////////////////////////////////////////////////////////////////
typedef bool BBOOL;
typedef unsigned char UBYTE8;
typedef signed char BYTE8;
typedef unsigned short UINT16;
typedef short SINT16;
typedef unsigned int UINT32;
typedef int SINT32;
typedef unsigned long COLORREF;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef float FLOAT32;
typedef double DOUBLE64;
typedef long double LDOUBLE80;
////////////////////////////////////////////////////////////////////////////////
// 系统数据结构
////////////////////////////////////////////////////////////////////////////////
// 定义坐标结构体--整型32位
typedef struct tagPoint32S // BYTES: 2*4=8
{
SINT32 x; // 图像像素x坐标
SINT32 y; // 图像像素y坐标
} POINT32S;
// 定义坐标结构体--整型16位
typedef struct tagPoint16S // BYTES: 2*2=4
{
SINT16 x; // 图像像素x坐标
SINT16 y; // 图像像素y坐标
} POINT16S;
// 定义坐标结构体--浮点型
typedef struct tagPoint32F // BYTES: 2*4=8
{
FLOAT32 x; // 图像像素x坐标
FLOAT32 y; // 图像像素y坐标
} POINT32F;
#ifndef _RPY_
#define _RPY_
// RPY姿态角
typedef struct tgEulerRPY
{
double fRoll; // 横滚角
double fPitch; // 俯仰角
double fYaw; // 方位角
} EulerRPY; // 单位:°
#endif
#ifndef _POLE_
#define _POLE_
// 极坐标系
typedef struct tgPointPole
{
double alpha; // 俯仰角
double beta; // 方位角
double distance; // 极径
} Pole; // 单位:°
#endif
#ifndef _POINTXYZ_
#define _POINTXYZ_
// 空间直角坐标系,也可以看做向量
typedef struct tgPointXYZ
{
double X;
double Y;
double Z;
} PointXYZ; // 单位:米
#endif
#ifndef _POINTBLH_
#define _POINTBLH_
typedef struct tgPointBLH
{
double B; // 纬度
double L; // 经度
double H; // 高程
} PointBLH; // 地理坐标系 //单位:°
#endif
// 相机内参
typedef struct tgCameraParam
{
int ImageWidth;
int ImageHeight;
float f; // 焦距 mm
float dSize; // 像元尺寸 um
int dx; // 像主点偏移x0代表图像中心
int dy; // 像主点偏移y0代表图像中心
float fAglReso;// 角分辨率,内部计算便于使用
bool bImageRataSys; //像旋系统标记S731实物样机1数字样机未模拟像旋 -0
} CameraParam;
// 伺服信息
typedef struct tgServoParam
{
float fAz; // 方位
float fPt; // 俯仰
// S731扩展
float fFSMAz; // 快反方位
float fFSMPt; // 快反俯仰
} ServoParam;
typedef struct tgDeviceSetupError
{
double g_YawBias;
double g_PitchBias;
double g_RollBias;
double g_XBias;
double g_YBias;
double g_ZBias;
} DeviceSetupError;
// 定义目标宽高结构体--32位 //BYTES: 3*4=12
typedef struct tagSize32S
{
SINT32 w; // 宽度
SINT32 h; // 高度
SINT32 s; // 面积
} SIZE32S;
// 定义目标宽高结构体--浮点型
typedef struct tagSize32F // BYTES: 3*4=12
{
FLOAT32 w; // 宽度
FLOAT32 h; // 高度
FLOAT32 s; // 面积
} SIZE32F;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 定义速度结构体--整型32位 //BYTES: 2*4=8
typedef struct tagSpeed32S
{
SINT32 vx; // x方向速度
SINT32 vy; // y方向速度
} SPEED32S;
// 定义速度结构体--浮点型
typedef struct tagSpeed32F // BYTES: 2*4=8
{
FLOAT32 vx; // x方向速度
FLOAT32 vy; // y方向速度
} SPEED32F;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 定义矩形结构体--左上角坐标及宽高--整型16位
typedef struct tagRect16S // BYTES: 4*2=8
{
SINT16 x; // 左上点x坐标
SINT16 y; // 左上点y坐标
SINT16 w; // 矩形宽度
SINT16 h; // 矩形高度
} RECT16S;
// 定义矩形结构体--左上角坐标及宽高--整型32位
typedef struct tagRect32S // BYTES: 4*4=16
{
SINT32 x; // 左上点x坐标
SINT32 y; // 左上点y坐标
SINT32 w; // 矩形宽度
SINT32 h; // 矩形高度
} RECT32S;
// 定义矩形结构体--左上角坐标及宽高--浮点型
typedef struct tagRect32F // BYTES: 4*4=16
{
FLOAT32 x; // 左上点x坐标
FLOAT32 y; // 左上点y坐标
FLOAT32 w; // 矩形宽度
FLOAT32 h; // 矩形高度
} RECT32F;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 定义矩形结构体--中心点坐标及宽高、大小-整型
typedef struct tagCENTERRECT // BYTES: 5*2=10
{
SINT16 cx; // 中心点x坐标
SINT16 cy; // 中心点y坐标
SINT16 w; // 矩形宽度
SINT16 h; // 矩形高度
SINT32 s; // 目标大小
}CENTERRECT;
// 定义矩形结构体--中心点坐标及宽高、大小-整型32位
typedef struct tagCENTERRECT32S // BYTES: 4*4=16
{
SINT32 cx; // 中心点x坐标
SINT32 cy; // 中心点y坐标
SINT32 w; // 矩形宽度
SINT32 h; // 矩形高度
SINT32 s; // 目标大小
} CENTERRECT32S;
// 定义矩形结构体--中心点坐标及宽高、大小-浮点型
typedef struct tagCENTERRECT32F // BYTES: 5*4=20
{
FLOAT32 cx; // 中心点x坐标
FLOAT32 cy; // 中心点y坐标
FLOAT32 w; // 矩形宽度
FLOAT32 h; // 矩形高度
FLOAT32 s; // 目标大小
} CENTERRECT32F;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 定义矩形结构体--左上角及右下角坐标
typedef struct tagMINMAXRECT // BYTES: 4*2=8
{
SINT16 minX; // 左上点x坐标
SINT16 minY; // 左上点y坐标
SINT16 maxX; // 右下点x坐标
SINT16 maxY; // 右下点y坐标
} MINMAXRECT;
// 定义矩形结构体--左上角及右下角坐标-整型32位
typedef struct tagMINMAXRECT32S // BYTES: 4*4=16
{
SINT32 minX; // 左上点x坐标
SINT32 minY; // 左上点y坐标
SINT32 maxX; // 右下点x坐标
SINT32 maxY; // 右下点y坐标
} MINMAXRECT32S;
// 定义矩形结构体--左上角及右下角坐标-浮点32位
typedef struct tagMINMAXRECT32F // BYTES: 4*4=16
{
FLOAT32 minX; // 左上点x坐标
FLOAT32 minY; // 左上点y坐标
FLOAT32 maxX; // 右下点x坐标
FLOAT32 maxY; // 右下点y坐标
} MINMAXRECT32F;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 定义目标角度结构体
typedef struct tagAngle32F // BYTES: 2*4=8
{
FLOAT32 fAz; // 方位角
FLOAT32 fPt; // 俯仰角
FLOAT32 Dr; // 极坐标角度
} ANGLE32F;
// 定义目标宽高结构体--16位 //BYTES: 2*2 + 1*4=8
typedef struct tagSize16S
{
SINT16 w; // 宽度
SINT16 h; // 高度
SINT32 s; // 面积
} SIZE16S;
// 定义距离结构体--整型32位
typedef struct tagDist32S // BYTES: 2*4=8
{
SINT32 dx; // x方向距离
SINT32 dy; // y方向距离
} DIST32S;
// 定义距离结构体--浮点型
typedef struct tagDist32F // BYTES: 2*4=8
{
FLOAT32 dx; // x方向距离
FLOAT32 dy; // y方向距离
} DIST32F;
//// 图像定义
//typedef struct tagGDImage
//{
// UBYTE8* pImage_t;//图像指针首地址
// SINT32 nWidth;//图像实际宽
// SINT32 nHeight;//图像实际高
// GLB_PT_TYPE nPixelType;//图像数据类型
//}GD_VIDEO_FRAME_S;
// AB滤波器
typedef struct tagFilter
{
float m_px;//方位角预测值
float m_pdx;//方位角速度预测值
float m_py;//俯仰角预测值
float m_pdy;//俯仰角速度预测值
// 滤波参数
float m_paraA;
float m_paraB;
int m_ind; //序号
float m_T;//1/系统频率
bool m_Init;//初始化标记
int m_LastFrmID;//上一帧更新的帧编号,扫描模式下防止帧频不稳定(有时一圈更新一次,有时连续帧更新)
}Filter;
#define GLB_OBJTRACK_LEN 100 //目标轨迹数组长度
// 定义目标角度轨迹结构体
typedef struct tagObjAglTrack32F
{
UINT32 unFrmID; // 记录目标被检测到的帧编号
ANGLE32F afAngle; // 目标方位角、俯仰角
FLOAT32 fDist; // 距离
} ANGLE_R;
// 定义目标角度信息结构体
typedef struct tagObjAngleR32F // BYTES: 5*4+28=48
{
SINT32 nCnt; // 已记录的历史角度信息个数
SINT32 nStep; // 记录帧间隔
SINT32 nEnd; // 历史循环队列末尾
SINT32 nListSize; // 目标角度数组长度
ANGLE_R parHistoryList[GLB_OBJTRACK_LEN]; // 目标角度信息历史记录
SINT32 nFilterCnt; // 滤波帧数
ANGLE_R arfFilter; // 滤波结果
ANGLE_R arfSpeed; // 目标速度
ANGLE_R arfPredict; // 目标当前帧预测
} OBJ_ANGLE_R;
// 长短时滤波器结构
typedef struct tagFilterMeanNL
{
OBJ_ANGLE_R ObjAglListsNear; //目标短时间轨迹数组(每帧记录一次)
OBJ_ANGLE_R ObjAglListsLong; //目标长时间轨迹数组(每秒记录一次)
CENTERRECT crnObjPrediRtNear; //根据目标短时轨迹在当前帧预测到的位置中心矩形
CENTERRECT crnObjPrediRtLong; //根据目标长时轨迹在当前帧预测到的位置中心矩形
MINMAXRECT32S mrnObjPrediRtNear;//根据目标短时轨迹在当前帧预测到的位置边界矩形
MINMAXRECT32S mrnObjPrediRtLong;//根据目标长时轨迹在当前帧预测到的位置边界矩形
DIST32S dnObjPredictDist; //当前帧目标长短轨迹预测位置距离
SINT32 nObjPredictFarCnt; //目标长短轨迹位置预测距离连续变大计数器
BBOOL bObjPredictAbnormal; //目标长短轨迹位置预测异常标志
BBOOL bObjTrackRefoundSucc; //在目标长短轨迹位置预测异常时,重新成功找到目标的标志
SINT32 nObjTrackLostCntNear; //目标短时轨迹预测失败帧数
SINT32 nObjTrackLostCntLong; //目标长时轨迹预测失败帧数
SINT32 nAbnormalCnt; //跟踪异常计数器(连续---坏点
}FilterMeanNL;
// 定义目标结构体
typedef struct tagTargetObject // BYTES: 3*1 + 1*2 + 7*4 + 3*8 = 57
{
// 全局
BBOOL bObject; // 标识目标是否已被创建。1-目标已创建0-目标未创建
UINT32 unFrmID; // 记录目标被检测到的帧编号
SINT32 nClassID; // 目标类型id如果有的话
FLOAT32 fDetConf; // 检测置信度(AI目标)
// 位置
POINT32F pfCenPos; // 区域的中心点坐标 //BYTES: 2*4=8
POINT16S pnMaxPos; // 目标的极大值位置(小目标检测用) //BYTES: 2*2=4
ANGLE32F afAngle; // 目标方位角、俯仰角
FLOAT32 fDist; // 距离视场中心距离
// 尺寸
MINMAXRECT mrnRect; // 目标上下左右边界坐标 //BYTES: 4*2=8
SIZE16S snSize; // 目标宽高 //BYTES: 2*2 + 1*4=8
UINT32 unObjPxlsCnt; // 目标的象素点的个数
UBYTE8 nObjTypeSize; // 表示目标尺寸类型1--小目标2--面目标3--临界目标即二者均是4--弱小目标
// 强度
UINT16 pxObjGray; // 目标的灰度:可以是中心点灰度、或目标均值等
UINT16 pxObjMaxGray; // 目标极值灰度 //04046wcw 20221019
FLOAT32 fObjStd; // 目标方差 4
FLOAT32 fBGStd; // 目标背景方差
FLOAT32 fBGMean; // 目标背景均值
FLOAT32 fSNR; // 目标背景信噪比
UBYTE8 nObjTypeGray; // 表示目标灰度类型1--亮目标2--暗目标0--其它
// 管道相关
UINT32 nInPipesID; // 是否拥有管道0-目标未加入管道大于0-目标已加入第nInPipesID-1个管道
SINT32 nInPipeDist; // 记录目标被加入管道时,与该管道中心的距离
UBYTE8 ubDirection;
// 来源
emObjSrc nObjTypeSrc; // 目标来源 01-小目标 02-面目标 03-AI目标 04-KCF 05-TLD 06-手动起
FLOAT32 fMatchConf; //跟踪阶段匹配度
} TARGET_OBJECT;
// 外部引导目标列表,用于批量转锁定
typedef struct tagTargetGuide
{
int ID; //目标批号,传递给锁定后目标
unsigned char bIsCoLocate; //协同定位标记,直接透传到目标
Pole stTargetPole; //目标极坐标
PointBLH stTargetPos; //目标GPS坐标
float fGuideAzSpeed; //实际锁定点方位角速度
float fGuidePtSpeed; //实际锁定点俯仰角速度
int nLockX; //锁定点当前图像坐标X
int nLockY; //锁定点当前图像坐标Y
bool bInFOV; //在视场判断
}TargetGuide;
// 载体信息
typedef struct tagAirCraftInfo
{
unsigned char nPlaneID; //载机ID
PointBLH stPos;//位置
EulerRPY stAtt;//姿态
}AirCraftInfo;
// 相机信息
typedef struct tagCamInfo
{
int nFocus; //实时焦距值
float fPixelSize; //像元尺寸
GLB_VIDE_TYPE unVideoType; //视频源类型
int dCamx; //像主点偏移x0- 图像中心 不知道就填0
int dCamy; //像主点偏移y0- 图像中心 不知道就填0
bool bImageRataSys; //像旋系统标记S731实物样机1数字样机未模拟像旋 -0
}CamInfo;
// 伺服状态
typedef struct tagServoInfo
{
float fServoAz; //当前帧伺服方位角
float fServoPt; //当前帧伺服俯仰角
float fServoAzSpeed; //当前帧伺服方位角速度
float fServoPtSpeed; //当前帧伺服俯仰角速度
}ServoInfo;
// 引导信息
typedef struct tagGuideInfo
{
bool bGuideUpdate; //引导当前帧更新标志(有效标志)
float fGuideYaw;
float fGuidePitch;
float fGuideDistance;
GLB_GUIDE_SOURCE nGuideInfSource; // 引导信息来源,本机雷达
}GuideInfo;
//跟踪算法控制参数
typedef struct tagARIDLL_PARMA
{
// 算法开关
bool bEnableDetcetSmallTarget;//小目标检测/跟踪开关
bool bEnableDetcetDimTarget;//弱小目标检测/跟踪开关
bool bEnableDetcetAreaTarget;//面目标检测/跟踪开关
bool bEnableKCFTracker;//面目标KCF跟踪开关
bool bEnableTLD;//tld算法开关
// 算法参数
float fSmallDetectGDK;//小目标检测snr阈值
int nDetectGrayType;//检测目标灰度类型
int fAreaDetectGrayDiffThre;//面目标检测灰度差阈值
int fAreaDetectGradDiffThre;//面目标检测梯度差阈值
int nSearchRadius; // 管道搜索半径
// 轨迹滤波器AB参数
float fA;
float fB;
SINT32 nScanSearchRadius;//周扫管道关联半径
BBOOL bUseShieldAngle; //屏蔽角算法开关
FLOAT32 fEffectScanAz0_X;//方位有效
FLOAT32 fEffectScanAz0_Y;
FLOAT32 fEffectScanAz1_X;
FLOAT32 fEffectScanAz1_Y;
FLOAT32 fEffectScanAz2_X;
FLOAT32 fEffectScanAz2_Y;
FLOAT32 fEffectScanAz3_X;
FLOAT32 fEffectScanAz3_Y;
FLOAT32 fEffectScanAz4_X;
FLOAT32 fEffectScanAz4_Y;
FLOAT32 fShieldScanAz0_X;//俯仰屏蔽
FLOAT32 fShieldScanAz0_Y;
UBYTE8 res[200];//预留
}ARIDLL_PARMA;
#define GLB_GUIDE_TARGET_NUM 10 //支持的一次性最大引导目标个数
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 定义操控盒到算法控制命令结构体
typedef struct tagGlbPCCommand // BYTES: 15*2=30
{
// 外部下发系统工作状态 by wcw04046 @ 2021/12/06
UBYTE8 ubSysStatusCmd;
// 场景模式
UBYTE8 ubScenCmd;//对空、对地、对海、通用等
// 锁定命令字
UBYTE8 ubCmd; // 控制命令:初始化、跟踪、解锁、切换视频源、切视场,所有的命令都在这里区分
UINT16 ubCmdLast; // 上一个遥控指令
UINT32 unSetLockunFrmId; // 命令下发帧编号
BYTE8 ubSetID; // 命令特指目标编号,自动判断给-1
//-- 命令字附带参数
// 视场内锁定指令字,单一目标
UINT16 unSetLockPosX; // 锁定点目标图像坐标中心点X
UINT16 unSetLockPosY; // 锁定点目标图像坐标中心点Y
UINT16 unSetLockBoxW; // 锁定波门宽度, 目标宽度
UINT16 unSetLockBoxH; // 锁定波门高度, 目标高度
BBOOL bGuideUpDate; // 导引更新标志,多目标共享,下一次引导覆盖当前批目标
// 多目标锁定接口最多支持10批次目标
TargetGuide target[GLB_GUIDE_TARGET_NUM];
} GLB_PCCOMMAND;
// AI识别目标
typedef struct tagobj_res // BYTES: 2*4=8
{
int x;
int y;
int w;
int h;
float ob_conf;
int cls_id;
int area;
//int id_type;
} obj_res ;
#endif