You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.9 KiB

/*********版权所有C2020武汉高德红外股份有限公司***************************************
* Arith_Detector.h
*
* ,,
* Arith_Detect
*
* 04046WCW
* 2020/03/05
*
*****************************************************************************************/
#pragma once
#include "Arith_Common.hpp"
#include "Detect/API_DetectSAObj.h"
//// 定义检测器最大检测个数
//#define DT_TARGET_MAX_NUM 100
// 检测器
class Detectors
{
public:
Detectors(SINT32 nWidth, SINT32 nHeight, CENTERRECT mmCenterRect);
Detectors(SINT32 nWidth, SINT32 nHeight);
virtual ~Detectors();
public:
// 检测器初始化
BBOOL Init(SINT32 nWidth, SINT32 nHeight, CENTERRECT mmCenterRect);
// 执行目标检测算法
SINT32 Detect(GD_VIDEO_FRAME_S img, CENTERRECT mmCenterRect);
// 执行目标检测算法
SINT32 Detect(GD_VIDEO_FRAME_S img);
// 导入外部目标列表
SINT32 ImportExternTargets(TARGET_OBJECT* pTargetList, SINT32 nNum);
// 清除目标列表
void ClearTargetsArray();
// 检测器参数设置
void SetParam(Param_SkyDetect para);
// 返回参数设置
Param_SkyDetect GetParam();
// 获取目标检测队列
TARGET_OBJECT* GetTargetArray();
// 根据RECT剔除目标,标记false
void RemoveLabelTarget(RECT32S box);
// 输出小目标检测的极值点
POINT16S* GetDST_MaxPoint();
// 当前帧目标检测个数
SINT32 m_FrmObjsCnt;
//参数
public:
Param_SkyDetect mDetPara;
// 小目标检测算法
API_DetectSmallObj* pDST_Module;
// 面目标检测算法
API_DetectAreaObj* pDAT_Module;
private:
GLB_STATUS nSysStatus;
// 目标检测队列
TARGET_OBJECT* m_Target_Array;
};
SINT16 MergeSmallAndAreaTarget(TARGET_OBJECT* ptTargetArray, SINT32 nSmallObjsCnt, SINT32 nAreaObjsCnt,SINT32 nCombineDist,GLB_STATUS nSysStatus);
void Sort_TargetArray(TARGET_OBJECT* ptTargetArray, SINT32 nObjsNum, FLOAT32 DetectCenterX, FLOAT32 DetectCenterY);
/*************************************
* Method: MergeAIAndSATarget()
* Function Description:
* CreateData: 2024/10/11
* Input Param: TARGET_OBJECT * ptTargetArray:
* Input Param: SINT32 nObjsCnt:
* Output Param:
* Return: SINT32:
* Call Relation:
* Other Description:
*************************************/
SINT32 MergeAIAndSATarget(TARGET_OBJECT* ptTargetArray,SINT32 nTotalCnt);