Пример #1
0
        /// <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);
        }