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); }
private void SetConditionAsSatisfied(Point position) { if (_blocksOfInvalidPixels) { _stripStatus.SetInvalid(position.X, position.Y); } else { _stripStatus.SetValid(position.X, position.Y); } }