657 const float SingleCandidateTHR = -10.;
658 const float DoubleCandidateTHR = -5.;
660 const std::vector<float> src(vec, vec+roi);
662 std::vector<float> diff(roi);
663 for (
size_t i=1;
i<roi-1;
i++)
664 diff[
i] = src[
i] - (src[
i-1] + src[
i+1])/2;
667 for (
unsigned int i=1;
i<roi-3;
i++)
670 if (diff[
i]>=DoubleCandidateTHR)
676 if (diff[
i]<SingleCandidateTHR)
679 if (diff[
i+1] > -1.6*diff[
i])
681 vec[i+1] = (src[
i] + src[i+2]) / 2;
702 if ((diff[
i+1] > -DoubleCandidateTHR) &&
703 (diff[
i+2] > -DoubleCandidateTHR))
705 vec[
i+1] = (src[
i+3] - src[
i])/3 + src[
i];
706 vec[
i+2] = 2*(src[
i+3] - src[
i])/3 + src[
i];