Class GraphCutMaskingOptions

Class GraphCutMaskingOptions

Il nome: Aspose.Imaging.Masking.Options Assemblea: Aspose.Imaging.dll (25.4.0)

Le opzioni di maschera automatica GraphCut.

public class GraphCutMaskingOptions : MaskingOptions

Inheritance

object MaskingOptions GraphCutMaskingOptions

Derived

AutoMaskingGraphCutOptions

I membri ereditari

MaskingOptions.BackgroundObjectNumber , MaskingOptions.Method , MaskingOptions.Args , MaskingOptions.ExportOptions , MaskingOptions.MaskingArea , MaskingOptions.Decompose , MaskingOptions.BackgroundReplacementColor , object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Examples

Salva il risultato del maschere dell’immagine con la facciata basata sulla dimensione dell’immaginazione. Il mascherare delle immagini viene eseguito utilizzando gli attacchi di default calcolati automaticamente. La proprietà di Args di AutoMaskingGraphCutOptions può essere dimenticata dal momento che gli incidenti di defunto vengono posizionati lì alla fine.

MaskingResult[] results;
                                                                                                                                                                                                                                                               using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                               {
                                                                                                                                                                                                                                                                   AutoMaskingGraphCutOptions options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                               {
                                                                                                                                                                                                                                                                                                                   CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                   FeatheringRadius = (Math.Max(image.Width, image.Height) / 500) + 1,
                                                                                                                                                                                                                                                                                                                   Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                   Decompose = false,
                                                                                                                                                                                                                                                                                                                   ExportOptions =
                                                                                                                                                                                                                                                                                                                       new PngOptions()
                                                                                                                                                                                                                                                                                                                           {
                                                                                                                                                                                                                                                                                                                               ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                               Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                           },
                                                                                                                                                                                                                                                                                                                   BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                   };

                                                                                                                                                                                                                                                                   results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                               }

                                                                                                                                                                                                                                                               using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                               {
                                                                                                                                                                                                                                                                   resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                               }

Salva il risultato di maschera dell’immagine con la facciata basata sulla dimensione dell’immaginazione. La mascherazione delle immagini viene eseguita utilizzando automaticamente calcolate strisce predefinite. Inoltre, i dati dei due oggetti assunti sono specificati anche nella proprietà AssumedObjects delle AutoMaskingGraphCutOptions.

List<assumedobjectdata> assumedObjects = new List<assumedobjectdata>();
                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Human, new Rectangle(100, 100, 150, 300)));
                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Dog, new Rectangle(300, 100, 50, 30)));

                                                                                                                                                                                                                                                                                  MaskingResult[] results;
                                                                                                                                                                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                      AutoMaskingGraphCutOptions options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                      AssumedObjects = assumedObjects,
                                                                                                                                                                                                                                                                                                                                      CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                                      FeatheringRadius = (Math.Max(image.Width, image.Height) / 500) + 1,
                                                                                                                                                                                                                                                                                                                                      Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                      Decompose = false,
                                                                                                                                                                                                                                                                                                                                      ExportOptions =
                                                                                                                                                                                                                                                                                                                                          new PngOptions()
                                                                                                                                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                                                                                                                                  ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                  Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                              },
                                                                                                                                                                                                                                                                                                                                      BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                  }</assumedobjectdata></assumedobjectdata>

Salva Graph Cut il risultato di masticare l’immagine con la fessura impostata a 3.

MaskingResult[] results;
                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                  {
                                                                                                                                      GraphCutMaskingOptions options = new GraphCutMaskingOptions()
                                                                                                                                                                                  {
                                                                                                                                                                                      FeatheringRadius = 3,
                                                                                                                                                                                      Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                      Decompose = false,
                                                                                                                                                                                      ExportOptions =
                                                                                                                                                                                          new PngOptions()
                                                                                                                                                                                              {
                                                                                                                                                                                                  ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                  Source = new FileCreateSource("tempFile")
                                                                                                                                                                                              },
                                                                                                                                                                                      BackgroundReplacementColor = Color.Transparent,
                                                                                                                                                                                      Args = new AutoMaskingArgs()
                                                                                                                                                                                              {
                                                                                                                                                                                                  ObjectsPoints = new Point[][]
                                                                                                                                                                                                                      {
                                                                                                                                                                                                                          new Point[]
                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                  new Point(100, 100),
                                                                                                                                                                                                                              },
                                                                                                                                                                                                                      }
                                                                                                                                                                                              }
                                                                                                                                                                                  };

                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                  }

                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                  {
                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                  }

Salva il risultato di maschera dell’immagine con la feathering basata su dimensioni di immagine e riutilizza le opzioni di massaggio per la nuova iterazione mascherata. La maschiatura dell’immagini viene eseguita utilizzando automaticamente calcolate incisioni predefinite. In aggiunta, i dati dei due oggetti assunti sono specificati anche nella proprietà AssumedObjects delle AutoMaskingGraphCutOptions. Dopo aver ottenuto l’esito iniziale della mascarata, vengono modificati gli attacchi di sfondo/foregrondo applicati e viene effettuata un’altra iterazione mascare.

List<assumedobjectdata> assumedObjects = new List<assumedobjectdata>();
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Human, new Rectangle(100, 100, 150, 300)));
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Dog, new Rectangle(300, 100, 50, 30)));

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  MaskingResult[] results;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  AutoMaskingGraphCutOptions options;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          AssumedObjects = assumedObjects,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          FeatheringRadius = 3,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Decompose = false,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ExportOptions =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              new PngOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  // At this point applied foreground/background strokes can be analyzed and based on it additional 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  // foreground/background strokes can be manually provided.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Point[] appliedBackgroundStrokes = options.DefaultBackgroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Point[] appliedForegroundStrokes = options.DefaultForegroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Rectangle[] appliedObjectRectangles = options.DefaultObjectsRectangles;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // Re-using AutoMaskingGraphCutOptions there is no need to perform default strokes calculations second time.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      options.CalculateDefaultStrokes = false;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // When both default strokes and ObjectsPoints in the Args property of AutoMaskingArgs are provided, Point arrays are end up combined.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // The first ObjectsPoints array is considered to be a background points array and 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // the second ObjectsPoints array is considered to be a foreground points array.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // When both DefaultObjectsRectangles and ObjectsRectangles in the Args property of AutoMaskingArgs are provided, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // only the array from the Args is being used.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      options.Args = new AutoMaskingArgs()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ObjectsPoints = new Point[][]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      new Point[] { new Point(100, 100), new Point(150, 100) }, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      new Point[] { new Point(500, 200) }, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ObjectsRectangles = new Rectangle[]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          new Rectangle(100, 100, 300, 300), 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }</assumedobjectdata></assumedobjectdata>

Salva il risultato di maschera dell’immagine con la feathering basata sulla dimensione dell’immaginazione, modifica gli attacchi predefiniti ottenuti e utilizzarlo per la nuova iterazione mascherata. Il masching dell ́immagini viene eseguito utilizzando gli incidenti predifesi calcolati automaticamente. In aggiunta, i dati dei due oggetti assunti sono specificati anche nella proprietà AssumedObjects delle AutoMaskingGraphCutOptions. Dopo aver ottenuto l’inizio del risultato mascarato, gli scontri di sfondo/foreground applicati vengono modificati e un altro attacco masticare viene effettuato utilizzando la seconda instanza GraphCitmaskingOption.

List<assumedobjectdata> assumedObjects = new List<assumedobjectdata>();
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Human, new Rectangle(100, 100, 150, 300)));
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Dog, new Rectangle(300, 100, 50, 30)));

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                MaskingResult[] results;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                AutoMaskingGraphCutOptions options;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        AssumedObjects = assumedObjects,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        FeatheringRadius = 3,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Decompose = false,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ExportOptions =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            new PngOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // At this point applied foreground/background strokes can be analyzed and based on it additional 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // foreground/background strokes can be manually provided.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Point[] appliedBackgroundStrokes = options.DefaultBackgroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Point[] appliedForegroundStrokes = options.DefaultForegroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Rectangle[] appliedObjectRectangles = options.DefaultObjectsRectangles;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedBackgroundStrokes[5] = new Point(100, 100);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedBackgroundStrokes[15] = new Point(150, 100);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedForegroundStrokes[1] = new Point(500, 200);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedObjectRectangles[0] = new Rectangle(100, 100, 300, 300);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    GraphCutMaskingOptions graphCutOptions = new GraphCutMaskingOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        FeatheringRadius = 3,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Decompose = false,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ExportOptions = new PngOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        BackgroundReplacementColor = Color.Transparent,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Args = new AutoMaskingArgs()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ObjectsPoints = new Point[][]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appliedBackgroundStrokes,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appliedForegroundStrokes
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ObjectsRectangles = appliedObjectRectangles
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    results = new ImageMasking(image).Decompose(graphCutOptions);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }</assumedobjectdata></assumedobjectdata>

Constructors

GraphCutMaskingOptions()

public GraphCutMaskingOptions()

Properties

FeatheringRadius

Raccogliere o impostare il raggio di fessura.

public int FeatheringRadius { get; set; }

Valore di proprietà

int

Examples

Salva il risultato del maschere dell’immagine con la facciata basata sulla dimensione dell’immaginazione. Il mascherare delle immagini viene eseguito utilizzando gli attacchi di default calcolati automaticamente. La proprietà di Args di AutoMaskingGraphCutOptions può essere dimenticata dal momento che gli incidenti di defunto vengono posizionati lì alla fine.

MaskingResult[] results;
                                                                                                                                                                                                                                                               using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                               {
                                                                                                                                                                                                                                                                   AutoMaskingGraphCutOptions options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                               {
                                                                                                                                                                                                                                                                                                                   CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                   FeatheringRadius = (Math.Max(image.Width, image.Height) / 500) + 1,
                                                                                                                                                                                                                                                                                                                   Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                   Decompose = false,
                                                                                                                                                                                                                                                                                                                   ExportOptions =
                                                                                                                                                                                                                                                                                                                       new PngOptions()
                                                                                                                                                                                                                                                                                                                           {
                                                                                                                                                                                                                                                                                                                               ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                               Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                           },
                                                                                                                                                                                                                                                                                                                   BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                   };

                                                                                                                                                                                                                                                                   results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                               }

                                                                                                                                                                                                                                                               using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                               {
                                                                                                                                                                                                                                                                   resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                               }

Salva il risultato di maschera dell’immagine con la facciata basata sulla dimensione dell’immaginazione. La mascherazione delle immagini viene eseguita utilizzando automaticamente calcolate strisce predefinite. Inoltre, i dati dei due oggetti assunti sono specificati anche nella proprietà AssumedObjects delle AutoMaskingGraphCutOptions.

List<assumedobjectdata> assumedObjects = new List<assumedobjectdata>();
                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Human, new Rectangle(100, 100, 150, 300)));
                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Dog, new Rectangle(300, 100, 50, 30)));

                                                                                                                                                                                                                                                                                  MaskingResult[] results;
                                                                                                                                                                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                      AutoMaskingGraphCutOptions options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                      AssumedObjects = assumedObjects,
                                                                                                                                                                                                                                                                                                                                      CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                                      FeatheringRadius = (Math.Max(image.Width, image.Height) / 500) + 1,
                                                                                                                                                                                                                                                                                                                                      Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                      Decompose = false,
                                                                                                                                                                                                                                                                                                                                      ExportOptions =
                                                                                                                                                                                                                                                                                                                                          new PngOptions()
                                                                                                                                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                                                                                                                                  ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                  Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                              },
                                                                                                                                                                                                                                                                                                                                      BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                  }</assumedobjectdata></assumedobjectdata>

Salva Graph Cut il risultato di masticare l’immagine con la fessura impostata a 3.

MaskingResult[] results;
                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                  {
                                                                                                                                      GraphCutMaskingOptions options = new GraphCutMaskingOptions()
                                                                                                                                                                                  {
                                                                                                                                                                                      FeatheringRadius = 3,
                                                                                                                                                                                      Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                      Decompose = false,
                                                                                                                                                                                      ExportOptions =
                                                                                                                                                                                          new PngOptions()
                                                                                                                                                                                              {
                                                                                                                                                                                                  ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                  Source = new FileCreateSource("tempFile")
                                                                                                                                                                                              },
                                                                                                                                                                                      BackgroundReplacementColor = Color.Transparent,
                                                                                                                                                                                      Args = new AutoMaskingArgs()
                                                                                                                                                                                              {
                                                                                                                                                                                                  ObjectsPoints = new Point[][]
                                                                                                                                                                                                                      {
                                                                                                                                                                                                                          new Point[]
                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                  new Point(100, 100),
                                                                                                                                                                                                                              },
                                                                                                                                                                                                                      }
                                                                                                                                                                                              }
                                                                                                                                                                                  };

                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                  }

                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                  {
                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                  }

Salva il risultato di maschera dell’immagine con la feathering basata su dimensioni di immagine e riutilizza le opzioni di massaggio per la nuova iterazione mascherata. La maschiatura dell’immagini viene eseguita utilizzando automaticamente calcolate incisioni predefinite. In aggiunta, i dati dei due oggetti assunti sono specificati anche nella proprietà AssumedObjects delle AutoMaskingGraphCutOptions. Dopo aver ottenuto l’esito iniziale della mascarata, vengono modificati gli attacchi di sfondo/foregrondo applicati e viene effettuata un’altra iterazione mascare.

List<assumedobjectdata> assumedObjects = new List<assumedobjectdata>();
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Human, new Rectangle(100, 100, 150, 300)));
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Dog, new Rectangle(300, 100, 50, 30)));

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  MaskingResult[] results;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  AutoMaskingGraphCutOptions options;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          AssumedObjects = assumedObjects,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          FeatheringRadius = 3,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Decompose = false,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ExportOptions =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              new PngOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  // At this point applied foreground/background strokes can be analyzed and based on it additional 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  // foreground/background strokes can be manually provided.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Point[] appliedBackgroundStrokes = options.DefaultBackgroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Point[] appliedForegroundStrokes = options.DefaultForegroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Rectangle[] appliedObjectRectangles = options.DefaultObjectsRectangles;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // Re-using AutoMaskingGraphCutOptions there is no need to perform default strokes calculations second time.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      options.CalculateDefaultStrokes = false;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // When both default strokes and ObjectsPoints in the Args property of AutoMaskingArgs are provided, Point arrays are end up combined.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // The first ObjectsPoints array is considered to be a background points array and 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // the second ObjectsPoints array is considered to be a foreground points array.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // When both DefaultObjectsRectangles and ObjectsRectangles in the Args property of AutoMaskingArgs are provided, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      // only the array from the Args is being used.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      options.Args = new AutoMaskingArgs()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ObjectsPoints = new Point[][]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      new Point[] { new Point(100, 100), new Point(150, 100) }, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      new Point[] { new Point(500, 200) }, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ObjectsRectangles = new Rectangle[]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          new Rectangle(100, 100, 300, 300), 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }</assumedobjectdata></assumedobjectdata>

Salva il risultato di maschera dell’immagine con la feathering basata sulla dimensione dell’immaginazione, modifica gli attacchi predefiniti ottenuti e utilizzarlo per la nuova iterazione mascherata. Il masching dell ́immagini viene eseguito utilizzando gli incidenti predifesi calcolati automaticamente. In aggiunta, i dati dei due oggetti assunti sono specificati anche nella proprietà AssumedObjects delle AutoMaskingGraphCutOptions. Dopo aver ottenuto l’inizio del risultato mascarato, gli scontri di sfondo/foreground applicati vengono modificati e un altro attacco masticare viene effettuato utilizzando la seconda instanza GraphCitmaskingOption.

List<assumedobjectdata> assumedObjects = new List<assumedobjectdata>();
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Human, new Rectangle(100, 100, 150, 300)));
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                assumedObjects.Add(new AssumedObjectData(DetectedObjectType.Dog, new Rectangle(300, 100, 50, 30)));

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                MaskingResult[] results;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                AutoMaskingGraphCutOptions options;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    options = new AutoMaskingGraphCutOptions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        AssumedObjects = assumedObjects,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CalculateDefaultStrokes = true,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        FeatheringRadius = 3,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Decompose = false,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ExportOptions =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            new PngOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        BackgroundReplacementColor = Color.Transparent
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    results = new ImageMasking(image).Decompose(options);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // At this point applied foreground/background strokes can be analyzed and based on it additional 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // foreground/background strokes can be manually provided.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Point[] appliedBackgroundStrokes = options.DefaultBackgroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Point[] appliedForegroundStrokes = options.DefaultForegroundStrokes;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Rectangle[] appliedObjectRectangles = options.DefaultObjectsRectangles;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedBackgroundStrokes[5] = new Point(100, 100);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedBackgroundStrokes[15] = new Point(150, 100);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedForegroundStrokes[1] = new Point(500, 200);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appliedObjectRectangles[0] = new Rectangle(100, 100, 300, 300);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage image = (RasterImage)Image.Load("input.jpg"))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    GraphCutMaskingOptions graphCutOptions = new GraphCutMaskingOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        FeatheringRadius = 3,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Method = SegmentationMethod.GraphCut,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Decompose = false,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ExportOptions = new PngOptions()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ColorType = PngColorType.TruecolorWithAlpha,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Source = new FileCreateSource("tempFile")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        BackgroundReplacementColor = Color.Transparent,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Args = new AutoMaskingArgs()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ObjectsPoints = new Point[][]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appliedBackgroundStrokes,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appliedForegroundStrokes
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        },
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ObjectsRectangles = appliedObjectRectangles
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    results = new ImageMasking(image).Decompose(graphCutOptions);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                using (RasterImage resultImage = (RasterImage)results[1].GetImage())
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    resultImage.Save("output.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }</assumedobjectdata></assumedobjectdata>
 Italiano