Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
 public bool Equals(PropertiesOfObject obj)
 {
     return(this.NormalizedCompactness == obj.NormalizedCompactness &&
            this.NormalizedPerimeter == obj.NormalizedPerimeter &&
            this.NormalizedSquere == obj.NormalizedSquere);
 }