S3315外场联调更新

main
11566hyc 5 months ago
parent d4f34483e5
commit a943686f67

@ -360,7 +360,7 @@ void Arith_EOController::CMD_OnCancelTrack(void)
// 释放所有跟踪器
//GLB_Release_Trackers(g_GLB_stPara.nPipeMaxNum);
LOG_DEBUG("CMD_OnCancelTrack:nStatus:{},unSetCancleMode:{}", g_GLB_stPara.nStatus, g_GLB_stCommand.unSetCancleMode);
if (0 == g_GLB_stCommand.unSetCancleMode)
{// 解锁对应点跟踪器
POINT32S ptCanclePos = { g_GLB_stCommand.unSetCanclePosX ,g_GLB_stCommand.unSetCanclePosY };
@ -372,7 +372,7 @@ void Arith_EOController::CMD_OnCancelTrack(void)
// 释放所有跟踪器
GLB_Release_Trackers(g_GLB_stPara.nPipeMaxNum);
//清空算法输出结果
memset(&g_GLB_stOutput, 0, sizeof(GLB_OUTPUT));
//memset(&g_GLB_stOutput, 0, sizeof(GLB_OUTPUT));
}
//跟踪状态下,当接收到解锁指令后,下一帧跟踪器返回待命状态
if (GLB_STATUS_TRACK == g_GLB_stPara.nStatus || GLB_STATUS_LOST == g_GLB_stPara.nStatus || (GLB_STATUS_MOTRACK == g_GLB_stPara.nStatus && 1 == g_GLB_stCommand.unSetCancleMode))

@ -412,10 +412,10 @@ void ARIDLL_Output(Arith_EOController* pArith, ARIDLL_OUTPUT* pstOutput)
// 返回跟踪器状态
pstOutput->nStatus = pArith->g_GLB_stPara.nStatus;
LOG_DEBUG("pstOutput:pstOutput->nFrmNum:{},pstOutput->nSysMode:{}, pstOutput->nStatus:{}",
pstOutput->nFrmNum,pstOutput->nSysMode,pstOutput->nStatus);
// 目标输出,统一由管道牵头输出
ARIDLL_OutputPipeTarget(pArith, pstOutput);
LOG_DEBUG("pstOutput:pstOutput->nFrmNum:{},pstOutput->nSysMode:{}, pstOutput->nStatus:{}",
pstOutput->nFrmNum, pstOutput->nSysMode, pstOutput->nStatus);
}
@ -647,17 +647,18 @@ void ARIDLL_OutputPipeTarget(Arith_EOController* pArith, ARIDLL_OUTPUT* pstOutpu
pstOutput->nStatus = 12; //半自动截获状态
}
}
if (3 == pstOutput->nStatus || 5 == pstOutput->nStatus || 9 == pstOutput->nStatus)//跟踪状态
//if (3 == pstOutput->nStatus || 5 == pstOutput->nStatus || 9 == pstOutput->nStatus)//跟踪状态
//{
if (pstOutput->nTrackObjCnts > 0)
{
pstOutput->nStatus = 3; //单目标跟踪
}
if (pstOutput->nTrackObjCnts > 1)
{
pstOutput->nStatus = 9; //多目标跟踪
}
else
{
pstOutput->nStatus = 3; //单目标跟踪
}
}
//}
int Index = ARIDLL_Sort_PipeByDistance(pArith, pstOutput);
if (0 < Index)
{

@ -1103,7 +1103,7 @@ SINT32 MOT_Pipe::PIPE_GetAlarmMaxNum()
SINT32 MOT_Pipe::SO_PointLock(GD_VIDEO_FRAME_S img, PIPE* pPipeArray, POINT32F ptLockPos)
{
SINT32 nSelecID = -1;
SINT32 nNearstDis = 99999;
SINT32 nNearstDis = 99999999;
// 大分辨率因为没有全屏显示,在实际图像上很小的距离占据较大像素,导致无法轻松锁定管道
SINT32 smallSize = g_PIPE_stPara.nPipeRadiusLock; // 默认设置为40
@ -1136,11 +1136,14 @@ SINT32 MOT_Pipe::SO_PointLock(GD_VIDEO_FRAME_S img, PIPE* pPipeArray, POINT32F p
FLOAT32 disDiagonalHalf = (FLOAT32)(sqrt(POW2(pPipe->ObjectFilter.sfSize.w) + POW2(pPipe->ObjectFilter.sfSize.h)) / 2);
FLOAT32 disXY = (FLOAT32)sqrt(POW2(disX) + POW2(disY));
//响应自动跟踪时,下发图像中心位置,算法自动寻找最近目标
if ((320 != (UINT16)ptLockPos.x) || (256 != (UINT16)ptLockPos.y))
{
if (disXY > MAX(2.5 * disDiagonalHalf, smallSize))
{
continue;
}
}
//if (disX > MAX(pPipe->ObjectFilter.sfSize.w * 1.5, smallSize) || disY > MAX(pPipe->ObjectFilter.sfSize.h * 1.5, smallSize))
//{
// continue;

Loading…
Cancel
Save