From cfcdaca5c0267e01967727cdfcf553f693225e37 Mon Sep 17 00:00:00 2001 From: wangchongwu <759291707@qq.com> Date: Fri, 22 Aug 2025 11:05:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=AE=9E=E7=8E=B0=E5=A4=A9?= =?UTF-8?q?=E5=9C=B0=E7=BA=BF=E5=B1=8F=E8=94=BD=EF=BC=8C=E4=B8=8D=E5=8D=A0?= =?UTF-8?q?=E7=94=A8=E7=AE=A1=E9=81=93=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NeoTracker/src/Arith_Status_SEARCH.cpp | 26 +++++++++++++++++++++++++- NeoTracker/src/NeoArithStandardDll.cpp | 13 ++++--------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/NeoTracker/src/Arith_Status_SEARCH.cpp b/NeoTracker/src/Arith_Status_SEARCH.cpp index d69bc20..b2ee75c 100644 --- a/NeoTracker/src/Arith_Status_SEARCH.cpp +++ b/NeoTracker/src/Arith_Status_SEARCH.cpp @@ -174,6 +174,26 @@ SINT32 Arith_EOController::Proc_SearchLock(GD_VIDEO_FRAME_S img, GLB_INPUT & g_I } +void DeleteTargetSkyLine(TARGET_OBJECT* pTargetArr, int num, GLB_PARAMETERS& g_para) +{ + // 不使用天地线 + if (!g_para.bFiteredAlarm) + { + return; + } + + for (int i = 0; i < num; i++) + { + TARGET_OBJECT* tTarget = &pTargetArr[i]; + + if (tTarget->afAngle.fPt < g_para.fFilterPt) + { + tTarget->bObject = false; + } + } +} + + /************************************* * Method: Arith_Status_SEARCH() * Function Description: 算法搜索模式处理流程 @@ -201,6 +221,11 @@ BBOOL Arith_EOController::Arith_Status_SEARCH(GD_VIDEO_FRAME_S img, GLB_INPUT& g // 目标系统相关的其他信息计算 Arith_CalcTargetSysInfo(pFrameTargetArray, nFrmTargetNum, g_Input); + + // 拦截天地线以下的目标 + DeleteTargetSkyLine(pFrameTargetArray, nFrmTargetNum, g_para); + + // 合并AI检测目标与传统目标 nFrmTargetNum = MergeAIAndSATarget(pFrameTargetArray, nFrmTargetNum); LOG_DEBUG("nFrmTargetNum:{},bObject:{}fAz:{},fPt:{}", nFrmTargetNum,pFrameTargetArray[0].bObject, pFrameTargetArray[0].afAngle.fAz, pFrameTargetArray[0].afAngle.fPt); @@ -216,4 +241,3 @@ BBOOL Arith_EOController::Arith_Status_SEARCH(GD_VIDEO_FRAME_S img, GLB_INPUT& g - diff --git a/NeoTracker/src/NeoArithStandardDll.cpp b/NeoTracker/src/NeoArithStandardDll.cpp index 7e1a306..db5de86 100644 --- a/NeoTracker/src/NeoArithStandardDll.cpp +++ b/NeoTracker/src/NeoArithStandardDll.cpp @@ -629,10 +629,10 @@ void ARIDLL_OutputPipeTarget(Arith_EOController* pArith, ARIDLL_OUTPUT* pstOutpu { if (pstOutput->nAlarmObjCnts < ST_OBJ_NUM - 1) { - if (pArith->g_GLB_stPara.bFiteredAlarm && obj.fPt < pArith->g_GLB_stPara.fFilterPt) - { - continue; - } + //if (pArith->g_GLB_stPara.bFiteredAlarm && obj.fPt < pArith->g_GLB_stPara.fFilterPt) + //{ + // continue; + //} memcpy(pt_detObj, &obj, sizeof(ARIDLL_OBJINFO)); pstOutput->nAlarmObjCnts++; } @@ -654,11 +654,6 @@ void ARIDLL_OutputPipeTarget(Arith_EOController* pArith, ARIDLL_OUTPUT* pstOutpu } } - - - - - //仅用于对外送显状态显示 if(2 == pstOutput->nStatus)//搜索状态 {