Aracılığıyla paylaş


ImageEstimatorsCatalog.ConvertToImage Yöntem

Tanım

VectorToImageConvertingEstimatoriçinde belirtilen inputColumnName sütundaki verilerden yeni bir sütuna görüntü oluşturan bir oluşturun: 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

Parametreler

catalog
TransformsCatalog

Dönüşümün kataloğu.

imageHeight
Int32

Çıkış görüntülerinin yüksekliği.

imageWidth
Int32

Çıkış görüntülerinin genişliği.

outputColumnName
String

dönüştürmesinden kaynaklanan sütunun inputColumnNameadı. Bu sütunun veri türü olacaktır MLImage.

inputColumnName
String

Görüntüye dönüştürülecek verileri içeren sütunun adı. Bu tahmin aracı, DoubleByteve değerlerinin bilinen boyuttaki vektörünün Singleüzerinde çalışır.

colorsPresent
ImagePixelExtractingEstimator.ColorBits

ImagePixelExtractingEstimator.ColorBits Giriş pikseli vektörlerinin hangilerinin mevcut olduğunu belirtir. Renklerin sırası içinde orderOfColorsbelirtilir.

orderOfColors
ImagePixelExtractingEstimator.ColorsOrder

Giriş vektörlerinde renklerin sunulma sırası.

interleavedColors
Boolean

Piksellerin birbirine katlanmış olup olmadığı, yani sıralı orderOfColors mı yoksa planlı biçimde mi ayrıldığı: tüm pikseller için bir rengin tüm değerleri, ardından başka bir rengin tüm değerleri vb.

scaleImage
Single

Değerler piksellere dönüştürülmeden önce bu değere göre ölçeklendirilir. öncesinde offsetImagevektör değerine uygulanır.

offsetImage
Single

Değerleri piksellere dönüştürmeden önce uzaklık çıkarılır. sonrasında vektör değerine scaleImageuygulanır.

defaultAlpha
Int32

alfa rengi için varsayılan değer, içeriyorsa colorsPresentAlphageçersiz kılınabilir.

defaultRed
Int32

varsa kırmızı renk için varsayılan değer geçersiz kılınabilir colorsPresentRed.

defaultGreen
Int32

varsa, yeşil renk için varsayılan değer geçersiz kılınabilir colorsPresentGreen.

defaultBlue
Int32

varsa, mavi renk için varsayılan değer geçersiz kılınabilir colorsPresentBlue.

Döndürülenler

Örnekler

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()
                };
        }
    }
}

Şunlara uygulanır