Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

ImageEstimatorsCatalog.LoadImages Method

Definition

Namespace:
Microsoft.ML
Assembly:
Microsoft.ML.ImageAnalytics.dll
Package:
Microsoft.ML.ImageAnalytics v4.0.1
Package:
Microsoft.ML.ImageAnalytics v1.0.0
Package:
Microsoft.ML.ImageAnalytics v1.1.0
Package:
Microsoft.ML.ImageAnalytics v1.2.0
Package:
Microsoft.ML.ImageAnalytics v1.3.1
Package:
Microsoft.ML.ImageAnalytics v1.4.0
Package:
Microsoft.ML.ImageAnalytics v1.5.5
Package:
Microsoft.ML.ImageAnalytics v1.6.0
Package:
Microsoft.ML.ImageAnalytics v1.7.0
Package:
Microsoft.ML.ImageAnalytics v2.0.1
Package:
Microsoft.ML.ImageAnalytics v3.0.1
Package:
Microsoft.ML.ImageAnalytics v5.0.0-preview.1.25125.4
Source:
ExtensionsCatalog.cs
Source:
ExtensionsCatalog.cs
Source:
ExtensionsCatalog.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Create a ImageLoadingEstimator, which loads the data from the column specified in inputColumnName as an image to a new column: outputColumnName.

public static Microsoft.ML.Data.ImageLoadingEstimator LoadImages(this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string imageFolder, string inputColumnName = default);
static member LoadImages : Microsoft.ML.TransformsCatalog * string * string * string -> Microsoft.ML.Data.ImageLoadingEstimator
<Extension()>
Public Function LoadImages (catalog As TransformsCatalog, outputColumnName As String, imageFolder As String, Optional inputColumnName As String = Nothing) As ImageLoadingEstimator

Parameters

catalog
TransformsCatalog

The transform's catalog.

outputColumnName
String

Name of the column resulting from the transformation of inputColumnName. This column's data type will be MLImage.

imageFolder
String

Folder where to look for images.

inputColumnName
String

Name of the column with paths to the images to load. This estimator operates over text data.

Returns

Examples

using System;
using System.IO;
using Microsoft.ML;
using Microsoft.ML.Data;

namespace Samples.Dynamic
{
 public static class LoadImages
 {
 // Loads the images of the imagesFolder into an IDataView.
 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();

 // Downloading a few images, and an images.tsv file, which contains a
 // list of the files from the dotnet/machinelearning/test/data/images/.
 // If you inspect the fileSystem, after running this line, an "images"
 // folder will be created, containing 4 images, and a .tsv file
 // enumerating the images.
 var imagesDataFile = Microsoft.ML.SamplesUtils.DatasetUtils
 .GetSampleImages();

 // Preview of the content of the images.tsv file
 //
 // imagePath imageType
 // tomato.bmp tomato
 // banana.jpg banana
 // hotdog.jpg hotdog
 // tomato.jpg tomato

 var data = mlContext.Data.CreateTextLoader(new TextLoader.Options()
 {
 Columns = new[]
 {
 new TextLoader.Column("ImagePath", DataKind.String, 0),
 new TextLoader.Column("Name", DataKind.String, 1),
 }
 }).Load(imagesDataFile);

 var imagesFolder = Path.GetDirectoryName(imagesDataFile);
 // Image loading pipeline.
 var pipeline = mlContext.Transforms.LoadImages("ImageObject",
 imagesFolder, "ImagePath");

 var transformedData = pipeline.Fit(data).Transform(data);

 PrintColumns(transformedData);
 // Preview the transformedData.
 // ImagePath Name ImageObject
 // tomato.bmp tomato {Width=800, Height=534}
 // banana.jpg banana {Width=800, Height=288}
 // hotdog.jpg hotdog {Width=800, Height=391}
 // tomato.jpg tomato {Width=800, Height=534}
 }

 private static void PrintColumns(IDataView transformedData)
 {
 // The transformedData IDataView contains the loaded images now.
 Console.WriteLine("{0, -25} {1, -25} {2, -25}", "ImagePath", "Name",
 "ImageObject");

 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.
 ReadOnlyMemory<char> imagePath = default;
 ReadOnlyMemory<char> name = default;
 MLImage imageObject = null;

 var imagePathGetter = cursor.GetGetter<ReadOnlyMemory<char>>(cursor
 .Schema["ImagePath"]);

 var nameGetter = cursor.GetGetter<ReadOnlyMemory<char>>(cursor
 .Schema["Name"]);

 var imageObjectGetter = cursor.GetGetter<MLImage>(cursor.Schema[
 "ImageObject"]);

 while (cursor.MoveNext())
 {
 imagePathGetter(ref imagePath);
 nameGetter(ref name);
 imageObjectGetter(ref imageObject);

 Console.WriteLine("{0, -25} {1, -25} {2, -25}",
 imagePath, name,
 $"Width={imageObject.Width}, Height={imageObject.Height}");
 }

 // Dispose the image.
 imageObject.Dispose();
 }
 }
 }
}

Applies to