ImageEstimatorsCatalog.ConvertToImage Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellen Sie ein VectorToImageConvertingEstimator, das Bild aus den Daten aus der Spalte erstellt, die in inputColumnName einer neuen Spalte angegeben ist: outputColumnName.
public static Microsoft.ML.Transforms.Image.VectorToImageConvertingEstimator ConvertToImage(this Microsoft.ML.TransformsCatalog catalog, int imageHeight, int imageWidth, string outputColumnName, string inputColumnName = default, Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator.ColorBits colorsPresent = Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator+ColorBits.Rgb, Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator.ColorsOrder orderOfColors = Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator+ColorsOrder.ARGB, bool interleavedColors = false, float scaleImage = 1, float offsetImage = 0, int defaultAlpha = 255, int defaultRed = 0, int defaultGreen = 0, int defaultBlue = 0);
static member ConvertToImage : Microsoft.ML.TransformsCatalog * int * int * string * string * Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator.ColorBits * Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator.ColorsOrder * bool * single * single * int * int * int * int -> Microsoft.ML.Transforms.Image.VectorToImageConvertingEstimator
<Extension()>
Public Function ConvertToImage (catalog As TransformsCatalog, imageHeight As Integer, imageWidth As Integer, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional colorsPresent As ImagePixelExtractingEstimator.ColorBits = Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator+ColorBits.Rgb, Optional orderOfColors As ImagePixelExtractingEstimator.ColorsOrder = Microsoft.ML.Transforms.Image.ImagePixelExtractingEstimator+ColorsOrder.ARGB, Optional interleavedColors As Boolean = false, Optional scaleImage As Single = 1, Optional offsetImage As Single = 0, Optional defaultAlpha As Integer = 255, Optional defaultRed As Integer = 0, Optional defaultGreen As Integer = 0, Optional defaultBlue As Integer = 0) As VectorToImageConvertingEstimator
Parameter
- catalog
- TransformsCatalog
Der Katalog der Transformation.
- imageHeight
- Int32
Die Höhe der Ausgabebilder.
- imageWidth
- Int32
Die Breite der Ausgabebilder.
- outputColumnName
- String
Name der Spalte, die sich aus der Transformation von inputColumnName.
Der Datentyp dieser Spalte ist MLImage.
- inputColumnName
- String
Der Name der Spalte mit Daten, die in ein Bild konvertiert werden sollen. Dieser Schätzer arbeitet über den bekannten Vektor von Single, Double und Byte.
- colorsPresent
- ImagePixelExtractingEstimator.ColorBits
Gibt an, welche ImagePixelExtractingEstimator.ColorBits die Eingabepixelvektoren enthalten. Die Reihenfolge der Farben wird in orderOfColorsangegeben.
- orderOfColors
- ImagePixelExtractingEstimator.ColorsOrder
Die Reihenfolge, in der Farben im Eingabevektor dargestellt werden.
- interleavedColors
- Boolean
Gibt an, ob die Pixel interleaviert sind, d. h., ob sie in orderOfColors ordnung sind oder in der planaren Form getrennt sind: alle Werte für eine Farbe für alle Pixel, dann alle Werte für eine andere Farbe usw.
- scaleImage
- Single
Die Werte werden von diesem Wert skaliert, bevor sie in Pixel konvertiert werden. Auf Vektorwert vor offsetImage.
- offsetImage
- Single
Der Offset wird subtrahiert, bevor die Werte in Pixel konvertiert werden. Auf Vektorwert angewendet nach scaleImage.
- defaultAlpha
- Int32
Der Standardwert für Alphafarbe würde überschrieben, wenn colorsPresent er enthält Alpha.
- defaultRed
- Int32
Der Standardwert für roter Farbe würde überschrieben, wenn colorsPresent enthält Red.
- defaultGreen
- Int32
Der Standardwert für grüne Farbe würde überschrieben, wenn colorsPresent er enthält Green.
- defaultBlue
- Int32
Der Standardwert für blauer Farbe würde überschrieben, wenn colorsPresent enthält Blue.
Gibt zurück
Beispiele
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.ML;
using Microsoft.ML.Data;
namespace Samples.Dynamic
{
public static class ConvertToImage
{
private const int imageHeight = 224;
private const int imageWidth = 224;
private const int numberOfChannels = 3;
private const int inputSize = imageHeight * imageWidth * numberOfChannels;
// Sample that shows how an input array (of doubles) can be used to interop
// with image related estimators in ML.NET.
public static void Example()
{
// Create a new ML context, for ML.NET operations. It can be used for
// exception tracking and logging, as well as the source of randomness.
var mlContext = new MLContext();
// Create a list of training data points.
var dataPoints = GenerateRandomDataPoints(4);
// Convert the list of data points to an IDataView object, which is
// consumable by ML.NET API.
var data = mlContext.Data.LoadFromEnumerable(dataPoints);
// Image loading pipeline.
var pipeline = mlContext.Transforms.ConvertToImage(imageHeight,
imageWidth, "Image", "Features")
.Append(mlContext.Transforms.ExtractPixels("Pixels", "Image"));
var transformedData = pipeline.Fit(data).Transform(data);
// Preview the transformedData.
PrintColumns(transformedData);
// Features Image Pixels
// 185,209,196,142,52... {Width=224, Height=224} 185,209,196,142,52...
// 182,235,84,23,87... {Width=224, Height=224} 182,235,84,23,87...
// 192,214,247,22,38... {Width=224, Height=224} 192,214,247,22,38...
// 242,161,141,223,192... {Width=224, Height=224} 242,161,141,223,192...
}
private static void PrintColumns(IDataView transformedData)
{
Console.WriteLine("{0, -25} {1, -25} {2, -25}", "Features", "Image",
"Pixels");
using (var cursor = transformedData.GetRowCursor(transformedData
.Schema))
{
// Note that it is best to get the getters and values *before*
// iteration, so as to facilitate buffer sharing (if applicable), and
// column -type validation once, rather than many times.
VBuffer<float> features = default;
VBuffer<float> pixels = default;
MLImage imageObject = null;
var featuresGetter = cursor.GetGetter<VBuffer<float>>(cursor.Schema[
"Features"]);
var pixelsGetter = cursor.GetGetter<VBuffer<float>>(cursor.Schema[
"Pixels"]);
var imageGetter = cursor.GetGetter<MLImage>(cursor.Schema["Image"]);
while (cursor.MoveNext())
{
featuresGetter(ref features);
pixelsGetter(ref pixels);
imageGetter(ref imageObject);
Console.WriteLine("{0, -25} {1, -25} {2, -25}", string.Join(",",
features.DenseValues().Take(5)) + "...",
$"Width={imageObject.Width}, Height={imageObject.Height}",
string.Join(",", pixels.DenseValues().Take(5)) + "...");
}
// Dispose the image.
imageObject.Dispose();
}
}
private class DataPoint
{
[VectorType(inputSize)]
public float[] Features { get; set; }
}
private static IEnumerable<DataPoint> GenerateRandomDataPoints(int count,
int seed = 0)
{
var random = new Random(seed);
for (int i = 0; i < count; i++)
yield return new DataPoint
{
Features = Enumerable.Repeat(0,
inputSize).Select(x => (float)random.Next(0, 256)).ToArray()
};
}
}
}