Files
CodeRepository/Projects/App_S3313/Src/gdParty/include/Arith_CommonDef.h
2026-02-01 22:23:06 +08:00

722 lines
21 KiB
C
Raw 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.
#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