Beispiel #1
0
        public double CalculateDistance(Frame frame, IMinHashCalculator minHashCalculator, IJaccardCalculator jaccardCalculator)
        {
            var thisFeatureVector  = GetFeaturesVector(minHashCalculator);
            var otherFeatureVector = frame.GetFeaturesVector(minHashCalculator);

            return(jaccardCalculator.Calculate(thisFeatureVector, otherFeatureVector));
        }
Beispiel #2
0
        public IEnumerable <uint> GetFeaturesVector(IMinHashCalculator minHashCalculator)
        {
            var featuresVector = new List <int>();

            foreach (var point in KazePoints)
            {
                featuresVector.Add(ConvertFloatToInt(point.Angle));
                featuresVector.Add(ConvertFloatToInt(point.ClassId));
                featuresVector.Add(ConvertFloatToInt(point.Octave));
                featuresVector.Add(ConvertFloatToInt(point.Point.X));
                featuresVector.Add(ConvertFloatToInt(point.Point.Y));
                featuresVector.Add(ConvertFloatToInt(point.Response));
                featuresVector.Add(ConvertFloatToInt(point.Size));
            }

            return(minHashCalculator.Calculate(20, 100, featuresVector));
        }
 public FrameProcessor(IMinHashCalculator minHashCalculator,
                       IJaccardCalculator jaccardCalculator)
 {
     this.minHashCalculator = minHashCalculator;
     this.jaccardCalculator = jaccardCalculator;
 }