Esempio n. 1
0
        public static Bitmap DrawClasses(ImgInfo imgInfo, Designer designer)
        {
            var labels = imgInfo.Labels;
            List<int> classesToRemove = new List<int>();
            Bitmap result = new Bitmap(imgInfo.OldPicture.Width, imgInfo.OldPicture.Height);
            for (int i = 0; i < result.Height; i++)
                for (int j = 0; j < result.Width; j++)
                    if (labels[j, i] != 0)
                    {
                        //var cl = imgInfo.Classes[labels[j, i]];
                        result.SetPixel(j, i, labels[j, i] < 0 ? Color.FromArgb(Math.Abs((labels[j, i]*15)%255), 
                                              Math.Abs(labels[j, i] * 12 + labels[j, i] * labels[j, i]) % 255,
                                              Math.Abs((labels[j, i] * 5 + labels[j, i]) % 255 * labels[j, i]) % 255)
                            : Color.Brown);
                        // Color.FromArgb(Math.Abs((labels[j, i]*15)%255), Color.AliceBlue));
                        //Math.Abs(labels[j, i] * 12 + labels[j, i] * labels[j, i]) % 255,
                        //Math.Abs((labels[j, i] * 5 + labels[j, i]) % 255 * labels[j, i]) % 255));
                        //else
                        //{
                        //   classesToRemove.Add(labels[j, i]);
                        //    labels[j, i] = 0;
                        //}
                    }

            foreach (var r in classesToRemove)
            {
                imgInfo.Classes.Remove(r);
            }
            return result;
        }
        public static Designer GetConfiguration(ImgInfo imgInfo )
        {
            var result = new Designer();
            result.Add(new DesignExpression(cl=>  cl.Ratio > LowThreshold));
            result.Add(new DesignExpression(cl => cl.Ratio < HighThreshold));
            
            result.Add(new DesignExpression(cl => (float)cl.Width / cl.Height > 0.1));
            result.Add(new DesignExpression(cl => (float)cl.Width / cl.Height < 10));
            result.Add(new DesignExpression(cl => cl.MaxDiff < cl.Weight / 3.33));
            //result.Add(new DesignExpression(cl => cl.Height > 20));
            //result.Add(new DesignExpression(cl => cl.Width > 20)); 
            result.Add(new DesignExpression(cl => cl.Weight > 70));
            result.Add(new DesignExpression(cl=> !(cl.Angles.Left.X == 0 && cl.Angles.Right.X ==  imgInfo.OldPicture.Width-1) ));

            return result;
        }
 public static Designer GetSecondConfiguration(ImgInfo imgInfo)
 {
     var result = new Designer();
     result.Add(new DesignExpression(cl => imgInfo.LincedLaters.Contains(cl.Class)));
     return result;
 }