ImageEstimatorsCatalog.ConvertToImage Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Utwórz obiekt VectorToImageConvertingEstimator, który tworzy obraz na podstawie danych z kolumny określonej w inputColumnName
metodzie do nowej kolumny: 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
Parametry
- catalog
- TransformsCatalog
Wykaz przekształcenia.
- imageHeight
- Int32
Wysokość obrazów wyjściowych.
- imageWidth
- Int32
Szerokość obrazów wyjściowych.
- outputColumnName
- String
Nazwa kolumny wynikającej z przekształcenia elementu inputColumnName
.
Typ danych tej kolumny to MLImage.
- inputColumnName
- String
Nazwa kolumny z danymi, które mają zostać przekonwertowane na obraz. Ten narzędzie do szacowania działa na znanym wektorze Singlewielkości , Double i Byte.
- colorsPresent
- ImagePixelExtractingEstimator.ColorBits
Określa, które ImagePixelExtractingEstimator.ColorBits są obecne wektory pikseli wejściowych. Kolejność kolorów jest określona w pliku orderOfColors
.
- orderOfColors
- ImagePixelExtractingEstimator.ColorsOrder
Kolejność przedstawiania kolorów w wektorze wejściowym.
- interleavedColors
- Boolean
Czy piksele są przeplatane, co oznacza, czy są w orderOfColors
kolejności, czy oddzielone w postaci planarnej: wszystkie wartości jednego koloru dla wszystkich pikseli, a następnie wszystkie wartości dla innego koloru itd.
- scaleImage
- Single
Wartości są skalowane według tej wartości przed przekonwertowaniem na piksele. Zastosowano do wartości wektora przed offsetImage
.
- offsetImage
- Single
Przesunięcie jest odejmowane przed przekonwertowaniem wartości na piksele. Zastosowano do wartości wektorowej po scaleImage
.
- defaultAlpha
- Int32
Wartość domyślna dla koloru alfa zostanie zastąpiona, jeśli colorsPresent
element zawiera Alphawartość .
- defaultRed
- Int32
Wartość domyślna koloru czerwonego zostanie zastąpiona, jeśli colorsPresent
zawiera Redwartość .
- defaultGreen
- Int32
Wartość domyślna koloru zielonego zostanie zastąpiona, jeśli colorsPresent
element zawiera Greenwartość .
- defaultBlue
- Int32
Wartość domyślna koloru niebieskiego zostanie zastąpiona, jeśli colorsPresent
element zawiera Bluewartość .
Zwraca
Przykłady
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()
};
}
}
}