19 #define PI (3.14159265358979232846) 25 m_dFilterSigma(0.0), m_iFilterWidth(0)
51 #ifdef DEBUG_CHANGE_DETECTION_FUNCTION 61 retVal.resize(rTCSGram.
getSize(), 0.0);
65 for (
int iPosition = 0; iPosition < rTCSGram.
getSize(); iPosition++)
74 iSkipLower = -iLowerPos;
78 if (iUpperPos >= rTCSGram.
getSize())
80 int iMaxIndex = rTCSGram.
getSize() - 1;
81 iUpperPos = iMaxIndex;
87 for (
int iPC = 0; iPC < 6; iPC++)
90 double dSmoothedValue = 0.0;
93 for (
int i = iLowerPos; i <= iUpperPos; i++)
96 dSmoothedValue +=
m_vaGaussian[iSkipLower + j++] * rCV[iPC];
99 smoothedVector[iPC] = dSmoothedValue;
105 for (
int iPosition = 0; iPosition < rTCSGram.
getSize(); iPosition++)
120 smoothedTCSGram.
getTCSVector(iPosition-iWindow, previousTCS);
129 smoothedTCSGram.
getTCSVector(iPosition+iWindow, nextTCS);
133 double distance = 0.0;
135 for (
size_t j = 0; j < 6; j++)
137 distance += std::pow(nextTCS[j] - previousTCS[j], 2.0);
140 retVal[iPosition] = std::pow(distance, 0.5);
valarray< double > m_vaGaussian
void addTCSVector(const TCSVector &)
ChangeDetectionFunction(ChangeDFConfig)
void getTCSVector(int, TCSVector &) const
valarray< double > ChangeDistance
void setFilterWidth(const int iWidth)
~ChangeDetectionFunction()
ChangeDistance process(const TCSGram &rTCSGram)