public double CalculateDistance(Frame frame, IMinHashCalculator minHashCalculator, IJaccardCalculator jaccardCalculator) { var thisFeatureVector = GetFeaturesVector(minHashCalculator); var otherFeatureVector = frame.GetFeaturesVector(minHashCalculator); return(jaccardCalculator.Calculate(thisFeatureVector, otherFeatureVector)); }
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; }