Enum DetectedObjectType
Nazwa przestrzeń: Aspose.Imaging.Masking.Options Zgromadzenie: Aspose.Imaging.dll (25.4.0)
Znaleziony obiekt typy listy.
public enum DetectedObjectType
Fields
Human = 0
Rodzaj ludzkiego obiektu.
Other = 1
Inne typy obiektów.
Examples
Oszczędzanie obrazu maski wynik z feathering oparte na rozmiarze obraza. obraz maska jest wykonywana za pomocą automatycznie obliczonych podstępnych szlaków. Dodatkowo dane dwóch przewidzianych obiektów są również określone w AssumedObjects właściwości 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>
Oszczędzanie obrazu maski wynik z feathering oparte na rozmiarze obrazów i ponowne wykorzystanie opcji masku dla nowej iteracji maska. obraz maskować jest wykonywane za pomocą automatycznie obliczonych podstępnych wstrząsów. Dodatkowo dane dwóch przewidywanych obiektów są również określone w AssumedObjects właściwości AutoMaskingGraphCutOptions. Po uzyskaniu początkowego wyniku masowania, zastosowane tło / przedziemne wstążki są zmodyfikowane i wykonuje się inna iteracja maskowania.
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>
Oszczędzanie obrazu maski wynik z feathering oparte na rozmiarze obrazów, modyfikacja uzyskanych standardowych wstrząsów i używanie go do nowej iteracji masku. obraz maska odbywa się za pomocą automatycznie obliczonej domyślnej wstępu. Dodatkowo dane dwóch przypuszczonych obiektów jest również określone w AssumedObjects właściwości AutoMaskingGraphCutOptions. Po uzyskaniu początkowego wyniku masowania, zastosowane tło / przedziemne uderzenia są zmodyfikowane i inna masowanie iteracja odbywają się przy użyciu nowego instancji GraphCotMaskerOption.
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>