public static ImgStripStatus Process(Bitmap imgWithoutModel, Bitmap img, ComparisonWithImgWithoutModelParams @params, Color backgroundColor)
        {
            var imgStripStatus = new ImgStripStatus(img.Width, img.Height);

            for (var y = 0; y < img.Height; y++)
            {
                for (var x = 0; x < img.Width; x++)
                {
                    var imgWithoutModelColor = imgWithoutModel.GetPixel(x, y);
                    var imgColor             = img.GetPixel(x, y);

                    var variationR = Math.Abs(imgColor.R - imgWithoutModelColor.R);
                    var variationG = Math.Abs(imgColor.G - imgWithoutModelColor.G);
                    var variationB = Math.Abs(imgColor.B - imgWithoutModelColor.B);

                    var similar = variationR <= @params.AllowedVariationInRgb && variationG <= @params.AllowedVariationInRgb && variationB <= @params.AllowedVariationInRgb;

                    //if the color is the same as the color on the image without model then it is the background
                    if (similar)
                    {
                        imgStripStatus.SetInvalid(x, y);
                    }
                }
            }
            return(imgStripStatus);
        }
Beispiel #2
0
 private void SetConditionAsSatisfied(Point position)
 {
     if (_blocksOfInvalidPixels)
     {
         _stripStatus.SetInvalid(position.X, position.Y);
     }
     else
     {
         _stripStatus.SetValid(position.X, position.Y);
     }
 }