|
|
|
@ -182,7 +182,7 @@ bool SA_Tracker::Init(UINT16* pSrc, SINT32 nWidth, SINT32 nHeight, PIPE* pTracki
|
|
|
|
void SA_Tracker::GetTrackState(GLB_INPUT* p_GLB_Input)
|
|
|
|
void SA_Tracker::GetTrackState(GLB_INPUT* p_GLB_Input)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
UINT32 unTotalCnt = m_LockingPipe->unTotalCnt;
|
|
|
|
UINT32 unTotalCnt = m_LockingPipe->unTotalCnt;
|
|
|
|
if (unTotalCnt < p_GLB_Input->unFreq * 3)
|
|
|
|
if (unTotalCnt < p_GLB_Input->unFreq * 2)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_LockingPipe->ubEventStatus = PIPE_EVENT_JUST_LOCK; // 锁定后3s范围内,处于初始锁定状态
|
|
|
|
m_LockingPipe->ubEventStatus = PIPE_EVENT_JUST_LOCK; // 锁定后3s范围内,处于初始锁定状态
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1382,7 +1382,6 @@ SINT32 SA_Tracker::FindMatchTarget(PIPE* pPipe, TARGET_OBJECT* ptTargetArray, SI
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SINT32 nEnd = pPipe->ubEnd;
|
|
|
|
SINT32 nEnd = pPipe->ubEnd;
|
|
|
|
// 尺寸变化强逻辑防跳变// by wcw04046 @ 2020/06/22
|
|
|
|
// 尺寸变化强逻辑防跳变// by wcw04046 @ 2020/06/22
|
|
|
|
if (nSimTargetId != -1 && m_ObjStatus.unContiLostCnt < 200)
|
|
|
|
if (nSimTargetId != -1 && m_ObjStatus.unContiLostCnt < 200)
|
|
|
|
@ -1506,6 +1505,14 @@ SINT32 SA_Tracker::FindMatchTarget(PIPE* pPipe, TARGET_OBJECT* ptTargetArray, SI
|
|
|
|
fThres = 0.8 * ContiLostThres;
|
|
|
|
fThres = 0.8 * ContiLostThres;
|
|
|
|
fMoveThres = 0.8 * 1.f - ContiLostThres;
|
|
|
|
fMoveThres = 0.8 * 1.f - ContiLostThres;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 单一目标初始锁定,不做阈值限制
|
|
|
|
|
|
|
|
if (bSingleTarget && PIPE_EVENT_JUST_LOCK == m_LockingPipe->ubEventStatus)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
fThres = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//若最大相似度不满足阈值,则认为未查找到管道目标,返回-1
|
|
|
|
//若最大相似度不满足阈值,则认为未查找到管道目标,返回-1
|
|
|
|
if (fSimMax < fThres /*||(SmallTarget == m_SizeMode && fMoveSim_Target < fMoveThres)*/)
|
|
|
|
if (fSimMax < fThres /*||(SmallTarget == m_SizeMode && fMoveSim_Target < fMoveThres)*/)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -2116,6 +2123,7 @@ void SA_Tracker::UpdateObject2Tracker(TARGET_OBJECT* pTarget, GLB_INPUT* p_GLB_I
|
|
|
|
pObjStatus->fObjStd = pTarget->fObjStd; // 目标方差
|
|
|
|
pObjStatus->fObjStd = pTarget->fObjStd; // 目标方差
|
|
|
|
pObjStatus->fBGStd = pTarget->fBGStd; // 目标背景方差
|
|
|
|
pObjStatus->fBGStd = pTarget->fBGStd; // 目标背景方差
|
|
|
|
pObjStatus->fSNR = pTarget->fSNR; // 信噪比
|
|
|
|
pObjStatus->fSNR = pTarget->fSNR; // 信噪比
|
|
|
|
|
|
|
|
pObjStatus->fBGMean = pTarget->fBGMean;
|
|
|
|
// 滤波值
|
|
|
|
// 滤波值
|
|
|
|
pObjStatus->ptPosFilter.x = pObjStatus->ptPosFilter.x * 0.4 + pObjStatus->ptPos.x * 0.6;//位置在图像系滤波
|
|
|
|
pObjStatus->ptPosFilter.x = pObjStatus->ptPosFilter.x * 0.4 + pObjStatus->ptPos.x * 0.6;//位置在图像系滤波
|
|
|
|
pObjStatus->ptPosFilter.y = pObjStatus->ptPosFilter.y * 0.4 + pObjStatus->ptPos.y * 0.6;//位置在图像系滤波
|
|
|
|
pObjStatus->ptPosFilter.y = pObjStatus->ptPosFilter.y * 0.4 + pObjStatus->ptPos.y * 0.6;//位置在图像系滤波
|
|
|
|
|