public IList <PropertiesOfObject> CreateListOfObjects(bool[,] originMatrix) { var unicumLabels = new List <int>(); var listOfObjects = new List <PropertiesOfObject>(); var source = this.Labeling(originMatrix); for (var y = 0; y < source.GetLength(0); ++y) { for (var x = 0; x < source.GetLength(1); ++x) { if (source[y, x] != 0 && !unicumLabels.Contains(source[y, x])) { unicumLabels.Add(source[y, x]); } } } foreach (var label in unicumLabels) { var squere = this.Squere(source, label); var perimeter = this.Perimeter(source, label); var compactness = this.Compactness(squere, perimeter); var obj = new PropertiesOfObject(squere, perimeter, compactness); listOfObjects.Add(obj); } return(listOfObjects); }
private double CalculateDistance(PropertiesOfObject obj1, PropertiesOfObject obj2) { var dX = Math.Abs(obj1.NormalizedSquere - obj2.NormalizedSquere); var dY = Math.Abs(obj1.NormalizedPerimeter - obj2.NormalizedPerimeter); var dZ = Math.Abs(obj1.NormalizedCompactness - obj2.NormalizedCompactness); return(Math.Pow(Math.Pow(dZ, 2) + Math.Pow(Math.Pow(dX, 2) + Math.Pow(dY, 2), 0.5), 0.5)); }
public bool Equals(PropertiesOfObject obj) { return(this.NormalizedCompactness == obj.NormalizedCompactness && this.NormalizedPerimeter == obj.NormalizedPerimeter && this.NormalizedSquere == obj.NormalizedSquere); }