public AutoConfigureContainer(string folderPath, BackgroundStrippingParams backgroundStrippingParams, Color backgroundColor) { InitializeComponent(); AutoConfigureControl.AutoConfigured += InvokeAutoConfiguredEvent; AutoConfigureControl.Initialize(folderPath, backgroundStrippingParams, backgroundColor); Loaded += AutoConfigureContainerLoaded; }
private void ResetValues() { _folderPath = null; _clickInputs = null; _modelMeshAndPositionNeighbors = null; _createMeshContract = null; _firstImageFilePath = null; _backgroundStrippingParams = null; _meshDensity = null; }
public void Initialize(string folderPath, BackgroundStrippingParams backgroundStrippingParams, Color backgroundColor) { _folderPath = folderPath; _backgroundStrippingParams = backgroundStrippingParams; _backgroundColor = backgroundColor; var firstImgPath = GetImageFilesHelper.GetImageFilesFromLocation(folderPath)[0]; ImageCanvas.SetImage(firstImgPath); ClickHelpImage.Source = new BitmapImage(new Uri("ClickInputs/7.png", UriKind.Relative)); }
public static void StripBackground(Bitmap image, BackgroundStrippingParams @params) { if (@params.ScreenBasedParams != null) { ScreenBasedStripper.Process(image, @params.ScreenBasedParams, GetColor(@params.BackgroundColor)); } else if (@params.ColorVariationBasedParams != null) { ColorVariationPercentBasedStripper.Process(image, @params.ColorVariationBasedParams.VariationPercent, GetColor(@params.BackgroundColor), GetColor(@params.ColorVariationBasedParams.CompareColor)); } }
public void TestColorVariationPercentBasedStripperWithMyPhotoImage() { const string inputFileName = @"\MyPhoto.jpg"; const string outputFileName = @"\TestColorVariationPercentBasedStripperWithMyPhotoImage.png"; var sourceImagePath = ExecutionDirInfoHelper.GetInputDirPath() + inputFileName; var bitmap = (Bitmap)Image.FromFile(sourceImagePath); var backgroundColor = new SerializableColor(200, 200, 200); var @params = new BackgroundStrippingParams { BackgroundColor = backgroundColor, ColorVariationBasedParams = new ColorVariationBasedParams { VariationPercent = 10, CompareColor = GetColor(bitmap.GetPixel(0, 0)) } }; BackgroundStripper.StripBackground(bitmap, @params); var @params1 = new BackgroundStrippingParams { BackgroundColor = backgroundColor, ColorVariationBasedParams = new ColorVariationBasedParams { VariationPercent = 5, CompareColor = GetColor(bitmap.GetPixel(626, 1802)) } }; BackgroundStripper.StripBackground(bitmap, @params1); var @params2 = new BackgroundStrippingParams { BackgroundColor = backgroundColor, ColorVariationBasedParams = new ColorVariationBasedParams { VariationPercent = 5, CompareColor = GetColor(bitmap.GetPixel(549, 1750)) } }; BackgroundStripper.StripBackground(bitmap, @params2); var targetPath = ExecutionDirInfoHelper.GetOutputDirPath() + outputFileName; bitmap.Save(targetPath); }
private static Bitmap GetRotatedCroppedResizedAndStrippedImage(BackgroundStrippingParams strippingParams, ImageClickInputDetails clickInput, ImageAlterationParams imageAlterationParams) { //pickup image from the source location var image = (Bitmap)Image.FromFile(String.Format(@"{0}\{1}", imageAlterationParams.ImageFolder, clickInput.ImageName)); //rotate image = MainProcessor.RotateImg(image, (float)clickInput.RotateImageBy, imageAlterationParams.InvalidColor); //crop image = ImageCropper.GetCroppedImage(clickInput, image, imageAlterationParams); //resize image = ImageResizer.ResizeImage(image, imageAlterationParams); //strip background BackgroundStripper.StripBackground(image, strippingParams); return(image); }
public static ImageParams GetImageParams(double variationIn3DCoordinates, BackgroundStrippingParams strippingParams, ImageClickInputDetails clickInput, double angle, ImageAlterationParams imageAlterationParams) { var imageData = GetRotatedCroppedResizedAndStrippedImage(strippingParams, clickInput, imageAlterationParams); //get camera ratio var cameraRatio = GetCamRatio(imageData, variationIn3DCoordinates); var cameraLocationPt = GetCamPos(variationIn3DCoordinates * 4.0, angle, 0.0); var lookingAtPt = GetCamDir(angle, 0.0, 0.0); return(new ImageParams { InvalidColor = imageAlterationParams.InvalidColor, Image = imageData, CameraAtInfinity = true, cameraLocation = cameraLocationPt, lookingAt = lookingAtPt, CameraRatio = cameraRatio }); }
private static void RunTest(string inputFileName, string outputFileName, int variationPercent, Point imgLocationOfBaseColor) { var sourceImagePath = ExecutionDirInfoHelper.GetInputDirPath() + inputFileName; var bitmap = (Bitmap)Image.FromFile(sourceImagePath); var backgroundColor = new SerializableColor(200, 200, 200); var @params = new BackgroundStrippingParams { BackgroundColor = backgroundColor, ColorVariationBasedParams = new ColorVariationBasedParams { VariationPercent = variationPercent, CompareColor = GetColor(bitmap.GetPixel(imgLocationOfBaseColor.X, imgLocationOfBaseColor.Y)) } }; BackgroundStripper.StripBackground(bitmap, @params); var targetPath = ExecutionDirInfoHelper.GetOutputDirPath() + outputFileName; bitmap.Save(targetPath); }
private void SetStripBackgroundParams(BackgroundStrippingParams @params) { _backgroundStrippingParams = @params; if (_stripBackgroundContainer != null) { BaseGrid.Children.Remove(_stripBackgroundContainer); _stripBackgroundContainer = null; } //check if click inputs can be deserialized from file var filePath = GetClickInputsFilePath(_folderPath); var deserialized = XmlSerializerHelper.Deserialize <ClickInputs>(filePath); if (deserialized != null) { SetClickInputs(deserialized); } else { DisplayClickCanvasContainer(_clickInputs); } }
public void TestStripBackground() { const string dinosaur = @"\dinosaur.jpg"; var sourceImagePath = _sourceDirPath + dinosaur; var bitmap = (Bitmap)Image.FromFile(sourceImagePath); var backgroundColor = new SerializableColor(200, 200, 200); var classicStripperParams = new BackgroundStrippingParams { ScreenBasedParams = new ScreenBasedParams { ScreenColorTypes = ScreenColorTypes.BlueScreen, MaxDiffPercent = 40, MinColorOffset = 40 }, BackgroundColor = backgroundColor }; BackgroundStripper.StripBackground(bitmap, classicStripperParams); var targetPath = _outputDirPath + dinosaur; bitmap.Save(targetPath); }
public StripBackgroundContainer(string testImageFilePath, Color invalidColor, BackgroundStrippingParams currentParams) { _invalidColor = invalidColor; InitializeComponent(); SliderForOffSet.Slider.Minimum = 10; SliderForOffSet.Slider.Maximum = 255; SliderForOffSet.Label.Text = "Minimum offset"; SliderForOffSet.Slider.Value = 25; SliderForMaxDiff.Slider.Minimum = 0; SliderForMaxDiff.Slider.Maximum = 100; SliderForMaxDiff.Label.Text = "Max diff between other 2 colors"; SliderForMaxDiff.Slider.Value = 100; SliderForOtherColor.Slider.Minimum = 0; SliderForOtherColor.Slider.Value = 10; SliderForOtherColor.Slider.Maximum = 50; SliderForOtherColor.Label.Text = "Allowed variation percent"; SliderForOtherColor.ToolTip = "Allowed variation in the color at the top left corner of the image"; ComboBoxForScreenColor.SelectedIndex = 0; SetImage(testImageFilePath); //set current values if (currentParams != null && currentParams.ColorVariationBasedParams != null) { ComboBoxForScreenColor.SelectedIndex = 3; SliderForOtherColor.Slider.Value = currentParams.ColorVariationBasedParams.VariationPercent; } else if (currentParams != null && currentParams.ScreenBasedParams != null) { SliderForOffSet.Slider.Value = currentParams.ScreenBasedParams.MinColorOffset; SliderForMaxDiff.Slider.Value = currentParams.ScreenBasedParams.MaxDiffPercent; switch (currentParams.ScreenBasedParams.ScreenColorTypes) { case ScreenColorTypes.BlueScreen: ComboBoxForScreenColor.SelectedIndex = 1; break; case ScreenColorTypes.RedScreen: ComboBoxForScreenColor.SelectedIndex = 2; break; default: ComboBoxForScreenColor.SelectedIndex = 0; break; } } SetSliderDisplayBasedOnScreenType(); this.Loaded += OnLoad; }
public static void StripBackground(Bitmap bitmap, BackgroundStrippingParams @params) { BackgroundStripper.StripBackground(bitmap, @params); }