コード例 #1
0
ファイル: MatchScoring.cs プロジェクト: TristramN/SourceAFIS
        public float Compute(MatchAnalysis analysis)
        {
            float score = 0;

            score += PairCountFactor * analysis.PairCount;
            score += CorrectTypeFactor * analysis.CorrectTypeCount;
            score += SupportedCountFactor * analysis.SupportedCount;
            score += PairFractionFactor * analysis.PairFraction;
            score += EdgeCountFactor * analysis.EdgeCount;
            if (analysis.PairCount >= 2)
            {
                var maxDistanceError = analysis.MaxDistanceError * (analysis.PairCount - 1);
                score += DistanceAccuracyFactor * (maxDistanceError - analysis.DistanceErrorSum) / maxDistanceError;
                var maxAngleError = analysis.MaxAngleError * (analysis.PairCount - 1) * 2;
                score += AngleAccuracyFactor * (maxAngleError - analysis.AngleErrorSum) / maxAngleError;
            }

            if (Logger.IsActive)
                Logger.Log(score);

            return score;
        }
コード例 #2
0
        public float Compute(MatchAnalysis analysis)
        {
            float score = 0;

            score += PairCountFactor * analysis.PairCount;
            score += CorrectTypeFactor * analysis.CorrectTypeCount;
            score += SupportedCountFactor * analysis.SupportedCount;
            score += PairFractionFactor * analysis.PairFraction;
            score += EdgeCountFactor * analysis.EdgeCount;
            if (analysis.PairCount >= 2)
            {
                var maxDistanceError = analysis.MaxDistanceError * (analysis.PairCount - 1);
                score += DistanceAccuracyFactor * (maxDistanceError - analysis.DistanceErrorSum) / maxDistanceError;
                var maxAngleError = analysis.MaxAngleError * (analysis.PairCount - 1) * 2;
                score += AngleAccuracyFactor * (maxAngleError - analysis.AngleErrorSum) / maxAngleError;
            }

            if (Logger.IsActive)
            {
                Logger.Log(score);
            }

            return(score);
        }