/// <summary> /// Executes classification algorithm, after running the method you will have /// a collection containing classified blobs. /// </summary> /// <param name="blobs">The blobs to classify.</param> /// <returns> /// A collection containing classified blobs.Collection size will be equal to blobs argument. /// </returns> public ICollection <ExtendedBlob> execute(ICollection <ExtendedBlob> blobs) { // Iterate over blobs and apply criteria. foreach (ExtendedBlob singleBlob in blobs) { Rectangle r = singleBlob.Rectangle; float ration = r.Height / r.Width; int size = r.Height * r.Width; if (size <= 25) { singleBlob.Class = Junk.GetInstance(); } else if (size < 500) // Size criteria. { singleBlob.Class = Unknown.GetInstance(); } // else if (ration > 5 && ration < 4) // Ratio criteria. // { // singleBlob.Class = ExtendedBlob.BlobClass.Unknown; // } else { singleBlob.Class = Person.GetInstance(); } } return(blobs); }