Snelstartgids: de Computer Vision-client bibliotheek gebruikenQuickstart: Use the Computer Vision client library

Aan de slag met de Computer Vision-client bibliotheek.Get started with the Computer Vision client library. Volg deze stappen om het pakket te installeren en de voorbeeld code voor basis taken uit te proberen.Follow these steps to install the package and try out the example code for basic tasks. Computer Vision biedt u toegang tot geavanceerde algoritmen voor het verwerken van afbeeldingen en het retour neren van gegevens.Computer Vision provides you with access to advanced algorithms for processing images and returning information.

Gebruik de Computer Vision-client bibliotheek voor het volgende:Use the Computer Vision client library to:

  • Analyseer een afbeelding voor Tags, tekst beschrijving, gezichten, inhoud voor volwassenen en meer.Analyze an image for tags, text description, faces, adult content, and more.
  • Gedrukte en handgeschreven tekst herkennen met de batch-API voor lezen.Recognize printed and handwritten text with the Batch Read API.

Referentie documentatie | Bron code | van bibliotheek Pakket (NuGet) | Voor beeldenReference documentation | Library source code | Package (NuGet) | Samples

VereistenPrerequisites

  • Een Azure-abonnement: Maak er gratis eenAn Azure subscription - Create one for free
  • De nieuwste versie van de .net core SDK.The latest version of the .NET Core SDK.
  • Wanneer u uw Azure-abonnement hebt, een computer vision resource in de Azure Portal om uw sleutel en eind punt op te halen.Once you have your Azure subscription, create a Computer Vision resource in the Azure portal to get your key and endpoint. Nadat de app is geïmplementeerd, klikt u op Ga naar resource.After it deploys, click Go to resource.
    • U hebt de sleutel en het eind punt nodig van de resource die u maakt om de toepassing te verbinden met de Computer Vision-service.You will need the key and endpoint from the resource you create to connect your application to the Computer Vision service. U plakt uw sleutel en het eind punt in de onderstaande code verderop in de Quick Start.You'll paste your key and endpoint into the code below later in the quickstart.
    • U kunt de gratis prijs categorie ( F0 ) gebruiken om de service te proberen en later te upgraden naar een betaalde laag voor productie.You can use the free pricing tier (F0) to try the service, and upgrade later to a paid tier for production.
  • Maak omgevings variabelen voor de sleutel-en eind punt-URL, COMPUTER_VISION_SUBSCRIPTION_KEY respectievelijk met de naam en COMPUTER_VISION_ENDPOINT .Create environment variables for the key and endpoint URL, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT, respectively.

InstellenSetting up

Een nieuwe C#-toepassing makenCreate a new C# application

Maak een nieuwe .NET core-toepassing in uw voorkeurs editor of IDE.Create a new .NET Core application in your preferred editor or IDE.

In een console venster (zoals cmd, Power shell of bash) gebruikt dotnet new u de opdracht om een nieuwe console-app met de naam te maken computer-vision-quickstart .In a console window (such as cmd, PowerShell, or Bash), use the dotnet new command to create a new console app with the name computer-vision-quickstart. Met deze opdracht maakt u een eenvoudig ' Hallo wereld ' C#-project met één bron bestand: ComputerVisionQuickstart.cs.This command creates a simple "Hello World" C# project with a single source file: ComputerVisionQuickstart.cs.

dotnet new console -n computer-vision-quickstart

Wijzig uw map in de zojuist gemaakte app-map.Change your directory to the newly created app folder. U kunt de toepassing maken met:You can build the application with:

dotnet build

De build-uitvoer mag geen waarschuwingen of fouten bevatten.The build output should contain no warnings or errors.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

Open het ComputerVisionQuickstart.cs -bestand in de map van het project in uw voorkeurs editor of IDE.From the project directory, open the ComputerVisionQuickstart.cs file in your preferred editor or IDE. Voeg de volgende using instructies toe:Add the following using directives:

using System;
using System.Collections.Generic;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

Maak in de programma klasse van de toepassing variabelen voor het Azure-eind punt en de sleutel van uw resource.In the application's Program class, create variables for your resource's Azure endpoint and key.

// Add your Computer Vision subscription key and endpoint to your environment variables. 
// Close/reopen your project for them to take effect.
static string subscriptionKey = Environment.GetEnvironmentVariable("COMPUTER_VISION_SUBSCRIPTION_KEY");
static string endpoint = Environment.GetEnvironmentVariable("COMPUTER_VISION_ENDPOINT");

De client bibliotheek installerenInstall the client library

Installeer de Computer Vision-client bibliotheek voor .NET in de toepassingsmap met de volgende opdracht:Within the application directory, install the Computer Vision client library for .NET with the following command:

dotnet add package Microsoft.Azure.CognitiveServices.Vision.ComputerVision --version 5.0.0

Als u de Visual Studio IDE gebruikt, is de client bibliotheek beschikbaar als een downloadbaar NuGet-pakket.If you're using the Visual Studio IDE, the client library is available as a downloadable NuGet package.

ObjectmodelObject model

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Computer Vision .NET SDK.The following classes and interfaces handle some of the major features of the Computer Vision .NET SDK.

NaamName BeschrijvingDescription
ComputerVisionClientComputerVisionClient Deze klasse is nodig voor alle Computer Vision functionaliteit.This class is needed for all Computer Vision functionality. U maakt de app met uw abonnements gegevens en gebruikt deze om de meeste installatie kopieën uit te voeren.You instantiate it with your subscription information, and you use it to do most image operations.
ComputerVisionClientExtensionsComputerVisionClientExtensions Deze klasse bevat aanvullende methoden voor de ComputerVisionClient.This class contains additional methods for the ComputerVisionClient.
VisualFeatureTypesVisualFeatureTypes Deze opsomming definieert de verschillende typen afbeeldings analyse die kunnen worden uitgevoerd in een standaard analyse bewerking.This enum defines the different types of image analysis that can be done in a standard Analyze operation. U geeft een set VisualFeatureTypes-waarden op, afhankelijk van uw behoeften.You specify a set of VisualFeatureTypes values depending on your needs.

CodevoorbeeldenCode examples

Deze code fragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Computer Vision-client bibliotheek voor .NET:These code snippets show you how to do the following tasks with the Computer Vision client library for .NET:

De client verifiërenAuthenticate the client

Notitie

In deze Quick Start wordt ervan uitgegaan dat u omgevings variabelen hebt gemaakt voor uw computer vision sleutel en eind punt, met de naam COMPUTER_VISION_SUBSCRIPTION_KEY en COMPUTER_VISION_ENDPOINT respectievelijk.This quickstart assumes you've created environment variables for your Computer Vision key and endpoint, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT respectively.

In een nieuwe methode maakt u een exemplaar van een client met uw eind punt en sleutel.In a new method, instantiate a client with your endpoint and key. Maak een ApiKeyServiceClientCredentials -object met uw sleutel en gebruik het met uw eind punt om een ComputerVisionClient -object te maken.Create a ApiKeyServiceClientCredentials object with your key, and use it with your endpoint to create a ComputerVisionClient object.

/*
 * AUTHENTICATE
 * Creates a Computer Vision client used by each example.
 */
public static ComputerVisionClient Authenticate(string endpoint, string key)
{
    ComputerVisionClient client =
      new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
      { Endpoint = endpoint };
    return client;
}

Waarschijnlijk wilt u deze methode in de-methode aanroepen Main .You'll likely want to call this method in the Main method.

// Create a client
ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);

Een afbeelding analyserenAnalyze an image

Met de volgende code wordt een methode gedefinieerd, AnalyzeImageUrl die gebruikmaakt van het-client object om een externe installatie kopie te analyseren en de resultaten af te drukken.The following code defines a method, AnalyzeImageUrl, which uses the client object to analyze a remote image and print the results. De methode retourneert een beschrijving van de tekst, categorisatie, lijst met tags, gedetecteerde gezichten, inhouds vlaggen voor volwassenen, hoofd kleuren en afbeeldings type.The method returns a text description, categorization, list of tags, detected faces, adult content flags, main colors, and image type.

Voeg de methode aanroep toe aan de Main methode.Add the method call in your Main method.

// Analyze an image to get features and other properties.
AnalyzeImageUrl(client, ANALYZE_URL_IMAGE).Wait();

Test installatie kopie instellenSet up test image

Sla in de programma klasse een verwijzing op naar de URL van de afbeelding die u wilt analyseren.In your Program class, save a reference to the URL of the image you want to analyze.

// URL image used for analyzing an image (image of puppy)
private const string ANALYZE_URL_IMAGE = "https://moderatorsampleimages.blob.core.windows.net/samples/sample16.png";

Notitie

U kunt ook een lokale installatie kopie analyseren.You can also analyze a local image. Zie de voorbeeld code op github voor scenario's met betrekking tot lokale installatie kopieën.See the sample code on GitHub for scenarios involving local images.

Visuele functies opgevenSpecify visual features

Definieer uw nieuwe methode voor het analyseren van afbeeldingen.Define your new method for image analysis. Voeg de onderstaande code toe. Hiermee geeft u de visuele functies op die u wilt extra heren in uw analyse.Add the code below, which specifies visual features you'd like to extract in your analysis. Zie de VisualFeatureTypes -inventarisatie voor een volledige lijst.See the VisualFeatureTypes enum for a complete list.

/* 
 * ANALYZE IMAGE - URL IMAGE
 * Analyze URL image. Extracts captions, categories, tags, objects, faces, racy/adult content,
 * brands, celebrities, landmarks, color scheme, and image types.
 */
public static async Task AnalyzeImageUrl(ComputerVisionClient client, string imageUrl)
{
    Console.WriteLine("----------------------------------------------------------");
    Console.WriteLine("ANALYZE IMAGE - URL");
    Console.WriteLine();

    // Creating a list that defines the features to be extracted from the image. 
    List<VisualFeatureTypes> features = new List<VisualFeatureTypes>()
{
  VisualFeatureTypes.Categories, VisualFeatureTypes.Description,
  VisualFeatureTypes.Faces, VisualFeatureTypes.ImageType,
  VisualFeatureTypes.Tags, VisualFeatureTypes.Adult,
  VisualFeatureTypes.Color, VisualFeatureTypes.Brands,
  VisualFeatureTypes.Objects
};

Voeg een van de volgende code blokken in uw AnalyzeImageUrl -methode in om hun functies te implementeren.Insert any of the following code blocks into your AnalyzeImageUrl method to implement their features. Vergeet niet om aan het einde een afsluitend haakje toe te voegen.Remember to add a closing bracket at the end.

}

AnalyserenAnalyze

De methode AnalyzeImageAsync retourneert een ImageAnalysis -object dat alle geëxtraheerde informatie bevat.The AnalyzeImageAsync method returns an ImageAnalysis object that contains all of extracted information.

Console.WriteLine($"Analyzing the image {Path.GetFileName(imageUrl)}...");
Console.WriteLine();
// Analyze the URL image 
ImageAnalysis results = await client.AnalyzeImageAsync(imageUrl, features);

In de volgende secties ziet u hoe u deze gegevens in detail kunt parseren.The following sections show how to parse this information in detail.

Beschrijving van afbeelding ophalenGet image description

Met de volgende code wordt de lijst met gegenereerde bijschriften voor de afbeelding opgehaald.The following code gets the list of generated captions for the image. Zie afbeeldingen beschrijven voor meer informatie.See Describe images for more details.

// Sunmarizes the image content.
Console.WriteLine("Summary:");
foreach (var caption in results.Description.Captions)
{
    Console.WriteLine($"{caption.Text} with confidence {caption.Confidence}");
}
Console.WriteLine();

Categorie van installatie kopie ophalenGet image category

Met de volgende code wordt de gedetecteerde categorie van de afbeelding opgehaald.The following code gets the detected category of the image. Zie installatie kopieën categoriseren voor meer informatie.See Categorize images for more details.

// Display categories the image is divided into.
Console.WriteLine("Categories:");
foreach (var category in results.Categories)
{
    Console.WriteLine($"{category.Name} with confidence {category.Score}");
}
Console.WriteLine();

Afbeeldings Tags ophalenGet image tags

Met de volgende code wordt de set gedetecteerde labels in de afbeelding opgehaald.The following code gets the set of detected tags in the image. Zie inhouds Tags voor meer informatie.See Content tags for more details.

// Image tags and their confidence score
Console.WriteLine("Tags:");
foreach (var tag in results.Tags)
{
    Console.WriteLine($"{tag.Name} {tag.Confidence}");
}
Console.WriteLine();

Objecten detecterenDetect objects

Met de volgende code worden algemene objecten in de installatie kopie gedetecteerd en worden deze in de-console afgedrukt.The following code detects common objects in the image and prints them to the console. Zie object detectie voor meer informatie.See Object detection for more details.

// Objects
Console.WriteLine("Objects:");
foreach (var obj in results.Objects)
{
    Console.WriteLine($"{obj.ObjectProperty} with confidence {obj.Confidence} at location {obj.Rectangle.X}, " +
      $"{obj.Rectangle.X + obj.Rectangle.W}, {obj.Rectangle.Y}, {obj.Rectangle.Y + obj.Rectangle.H}");
}
Console.WriteLine();

Merken detecterenDetect brands

Met de volgende code worden de bedrijfs merken en-logo's in de installatie kopie gedetecteerd en afgedrukt in de-console.The following code detects corporate brands and logos in the image and prints them to the console. Zie merk detectie voor meer informatie.See Brand detection for more details.

// Well-known (or custom, if set) brands.
Console.WriteLine("Brands:");
foreach (var brand in results.Brands)
{
    Console.WriteLine($"Logo of {brand.Name} with confidence {brand.Confidence} at location {brand.Rectangle.X}, " +
      $"{brand.Rectangle.X + brand.Rectangle.W}, {brand.Rectangle.Y}, {brand.Rectangle.Y + brand.Rectangle.H}");
}
Console.WriteLine();

Gezichten detecterenDetect faces

Met de volgende code worden de gedetecteerde gezichten in de afbeelding met hun rechthoek coördinaten als resultaat gegeven en selecteert u face Attributes.The following code returns the detected faces in the image with their rectangle coordinates and select face attributes. Zie gezichts detectie voor meer informatie.See Face detection for more details.

// Faces
Console.WriteLine("Faces:");
foreach (var face in results.Faces)
{
    Console.WriteLine($"A {face.Gender} of age {face.Age} at location {face.FaceRectangle.Left}, " +
      $"{face.FaceRectangle.Left}, {face.FaceRectangle.Top + face.FaceRectangle.Width}, " +
      $"{face.FaceRectangle.Top + face.FaceRectangle.Height}");
}
Console.WriteLine();

Inhoud voor volwassenen, ongepaste of benchmarks detecterenDetect adult, racy, or gory content

Met de volgende code wordt de gedetecteerde aanwezigheid van inhoud voor volwassenen afgedrukt in de installatie kopie.The following code prints the detected presence of adult content in the image. Zie inhoud voor volwassenen, ongepaste, benchmarks voor meer informatie.See Adult, racy, gory content for more details.

// Adult or racy content, if any.
Console.WriteLine("Adult:");
Console.WriteLine($"Has adult content: {results.Adult.IsAdultContent} with confidence {results.Adult.AdultScore}");
Console.WriteLine($"Has racy content: {results.Adult.IsRacyContent} with confidence {results.Adult.RacyScore}");
Console.WriteLine();

Kleuren schema afbeelding ophalenGet image color scheme

Met de volgende code worden de gedetecteerde kleur kenmerken in de afbeelding afgedrukt, zoals de dominante kleuren en accent kleur.The following code prints the detected color attributes in the image, like the dominant colors and accent color. Zie kleuren schema's voor meer informatie.See Color schemes for more details.

// Identifies the color scheme.
Console.WriteLine("Color Scheme:");
Console.WriteLine("Is black and white?: " + results.Color.IsBWImg);
Console.WriteLine("Accent color: " + results.Color.AccentColor);
Console.WriteLine("Dominant background color: " + results.Color.DominantColorBackground);
Console.WriteLine("Dominant foreground color: " + results.Color.DominantColorForeground);
Console.WriteLine("Dominant colors: " + string.Join(",", results.Color.DominantColors));
Console.WriteLine();

Domein-specifieke inhoud ophalenGet domain-specific content

Computer Vision kunt gespecialiseerde modellen gebruiken om verdere analyse van installatie kopieën uit te voeren.Computer Vision can use specialized models to do further analysis on images. Zie Domain-specifieke inhoud voor meer informatie.See Domain-specific content for more details.

Met de volgende code worden gegevens over gedetecteerde beroemdheden in de installatie kopie geparseerd.The following code parses data about detected celebrities in the image.

// Celebrities in image, if any.
Console.WriteLine("Celebrities:");
foreach (var category in results.Categories)
{
    if (category.Detail?.Celebrities != null)
    {
        foreach (var celeb in category.Detail.Celebrities)
        {
            Console.WriteLine($"{celeb.Name} with confidence {celeb.Confidence} at location {celeb.FaceRectangle.Left}, " +
              $"{celeb.FaceRectangle.Top}, {celeb.FaceRectangle.Height}, {celeb.FaceRectangle.Width}");
        }
    }
}
Console.WriteLine();

Met de volgende code worden gegevens over gedetecteerde bezienswaardigheden in de installatie kopie geparseerd.The following code parses data about detected landmarks in the image.

// Popular landmarks in image, if any.
Console.WriteLine("Landmarks:");
foreach (var category in results.Categories)
{
    if (category.Detail?.Landmarks != null)
    {
        foreach (var landmark in category.Detail.Landmarks)
        {
            Console.WriteLine($"{landmark.Name} with confidence {landmark.Confidence}");
        }
    }
}
Console.WriteLine();

Het afbeeldings type ophalenGet the image type

Met de volgende code wordt informatie over het type afbeelding afgedrukt — , ongeacht of het een illustratie of lijn tekening is.The following code prints information about the type of image—whether it is clip art or a line drawing.

// Detects the image types.
Console.WriteLine("Image Type:");
Console.WriteLine("Clip Art Type: " + results.ImageType.ClipArtType);
Console.WriteLine("Line Drawing Type: " + results.ImageType.LineDrawingType);
Console.WriteLine();

Gedrukte en handgeschreven tekst lezenRead printed and handwritten text

Computer Vision kunt zicht bare tekst in een afbeelding lezen en deze converteren naar een teken stroom.Computer Vision can read visible text in an image and convert it to a character stream. De code in deze sectie definieert een methode, ExtractTextUrl die gebruikmaakt van het-client object om gedrukte of handgeschreven tekst in de afbeelding te detecteren en uit te pakken.The code in this section defines a method, ExtractTextUrl, which uses the client object to detect and extract printed or handwritten text in the image.

Voeg de methode aanroep toe aan de Main methode.Add the method call in your Main method.

// Read the batch text from an image (handwriting and/or printed).
BatchReadFileUrl(client, EXTRACT_TEXT_URL_IMAGE).Wait();
BatchReadFileLocal(client, EXTRACT_TEXT_LOCAL_IMAGE).Wait();

Test installatie kopie instellenSet up test image

Sla in de programma klasse een verwijzing op naar de URL van de afbeelding waaruit u tekst wilt extra heren.In your Program class, save a reference the URL of the image you want to extract text from.

private const string EXTRACT_TEXT_URL_IMAGE = "https://raw.githubusercontent.com/MicrosoftDocs/azure-docs/master/articles/cognitive-services/Computer-vision/Images/readsample.jpg";
// URL image for OCR (optical character recognition).

Notitie

U kunt ook tekst extra heren uit een lokale installatie kopie.You can also extract text from a local image. Zie de voorbeeld code op github voor scenario's met betrekking tot lokale installatie kopieën.See the sample code on GitHub for scenarios involving local images.

De Lees-API aanroepenCall the Read API

Definieer de nieuwe methode voor het lezen van tekst.Define the new method for reading text. Voeg de onderstaande code toe, die de BatchReadFileAsync -methode voor de gegeven afbeelding aanroept.Add the code below, which calls the BatchReadFileAsync method for the given image. Hiermee wordt een bewerkings-ID geretourneerd en wordt een asynchroon proces gestart om de inhoud van de afbeelding te lezen.This returns an operation ID and starts an asynchronous process to read the content of the image.

/*
 * BATCH READ FILE - URL IMAGE
 * Recognizes handwritten text. 
 * This API call offers an improvement of results over the Recognize Text calls.
 */
public static async Task BatchReadFileUrl(ComputerVisionClient client, string urlImage)
{
    Console.WriteLine("----------------------------------------------------------");
    Console.WriteLine("BATCH READ FILE - URL IMAGE");
    Console.WriteLine();

    // Read text from URL
    BatchReadFileHeaders textHeaders = await client.BatchReadFileAsync(urlImage);
    // After the request, get the operation location (operation ID)
    string operationLocation = textHeaders.OperationLocation;

Lees resultaten ophalenGet Read results

Haal vervolgens de bewerkings-ID op die wordt geretourneerd door de BatchReadFileAsync -aanroep en gebruik deze om de service te doorzoeken op de resultaten van de bewerking.Next, get the operation ID returned from the BatchReadFileAsync call, and use it to query the service for operation results. Met de volgende code wordt de bewerking met een interval van één seconde gecontroleerd totdat de resultaten worden geretourneerd.The following code checks the operation at one-second intervals until the results are returned. Vervolgens worden de geëxtraheerde tekst gegevens afgedrukt naar de-console.It then prints the extracted text data to the console.

    // Retrieve the URI where the recognized text will be stored from the Operation-Location header.
    // We only need the ID and not the full URL
    const int numberOfCharsInOperationId = 36;
    string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId);

    // Extract the text
    // Delay is between iterations and tries a maximum of 10 times.
    int i = 0;
    int maxRetries = 10;
    ReadOperationResult results;
    Console.WriteLine($"Extracting text from URL image {Path.GetFileName(urlImage)}...");
    Console.WriteLine();
    do
    {
        results = await client.GetReadOperationResultAsync(operationId);
        Console.WriteLine("Server status: {0}, waiting {1} seconds...", results.Status, i);
        await Task.Delay(1000);
        if (i == 9) 
{ 
    Console.WriteLine("Server timed out."); 
}
    }
    while ((results.Status == TextOperationStatusCodes.Running ||
        results.Status == TextOperationStatusCodes.NotStarted) && i++ < maxRetries);

Lees resultaten weer gevenDisplay Read results

Voeg de volgende code toe om de opgehaalde tekst gegevens te parseren en weer te geven, en voltooi de methode definitie.Add the following code to parse and display the retrieved text data, and finish the method definition.

    // Display the found text.
    Console.WriteLine();
    var textRecognitionLocalFileResults = results.RecognitionResults;
    foreach (TextRecognitionResult recResult in textRecognitionLocalFileResults)
    {
        foreach (Line line in recResult.Lines)
        {
            Console.WriteLine(line.Text);
        }
    }
    Console.WriteLine();
}

De toepassing uitvoerenRun the application

Voer de toepassing uit vanuit de map van uw toepassing met de dotnet run opdracht.Run the application from your application directory with the dotnet run command.

dotnet run

Resources opschonenClean up resources

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resource groep verwijderen.If you want to clean up and remove a Cognitive Services subscription, you can delete the resource or resource group. Als u de resource groep verwijdert, worden ook alle bijbehorende resources verwijderd.Deleting the resource group also deletes any other resources associated with it.

Volgende stappenNext steps

Referentie documentatie | Artefact (Maven) | Voor beeldenReference documentation | Artifact (Maven) | Samples

VereistenPrerequisites

  • Een Azure-abonnement: Maak er gratis eenAn Azure subscription - Create one for free
  • De huidige versie van de Java Development Kit (JDK)The current version of the Java Development Kit(JDK)
  • Het hulp programma Gradle buildof een andere afhankelijkheids Manager.The Gradle build tool, or another dependency manager.
  • Wanneer u uw Azure-abonnement hebt, een computer vision resource in de Azure Portal om uw sleutel en eind punt op te halen.Once you have your Azure subscription, create a Computer Vision resource in the Azure portal to get your key and endpoint. Nadat de app is geïmplementeerd, klikt u op Ga naar resource.After it deploys, click Go to resource.
    • U hebt de sleutel en het eind punt nodig van de resource die u maakt om de toepassing te verbinden met de Computer Vision-service.You will need the key and endpoint from the resource you create to connect your application to the Computer Vision service. U plakt uw sleutel en het eind punt in de onderstaande code verderop in de Quick Start.You'll paste your key and endpoint into the code below later in the quickstart.
    • U kunt de gratis prijs categorie ( F0 ) gebruiken om de service te proberen en later te upgraden naar een betaalde laag voor productie.You can use the free pricing tier (F0) to try the service, and upgrade later to a paid tier for production.
  • Maak omgevings variabelen voor de sleutel-en eind punt-URL, COMPUTER_VISION_SUBSCRIPTION_KEY respectievelijk met de naam en COMPUTER_VISION_ENDPOINT .Create environment variables for the key and endpoint URL, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT, respectively.

InstellenSetting up

Een nieuw Gradle-project makenCreate a new Gradle project

Maak in een console venster (zoals cmd, Power shell of bash) een nieuwe map voor uw app en navigeer ernaar.In a console window (such as cmd, PowerShell, or Bash), create a new directory for your app, and navigate to it.

mkdir myapp && cd myapp

Voer de gradle init opdracht uit vanuit de werkmap.Run the gradle init command from your working directory. Met deze opdracht worden essentiële build-bestanden gemaakt voor Gradle, waaronder Build. Gradle. KTS, dat tijdens runtime wordt gebruikt om uw toepassing te maken en te configureren.This command will create essential build files for Gradle, including build.gradle.kts, which is used at runtime to create and configure your application.

gradle init --type basic

Wanneer u wordt gevraagd om een DSL te kiezen, selecteert u Kotlin.When prompted to choose a DSL, select Kotlin.

Zoek Build. gradle. KTS en open het met uw favoriete IDE-of tekst editor.Locate build.gradle.kts and open it with your preferred IDE or text editor. Kopieer vervolgens de volgende Build-configuratie.Then copy in the following build configuration. Deze configuratie definieert het project als een Java-toepassing waarvan het ingangs punt de klasse ComputerVisionQuickstartsis.This configuration defines the project as a Java application whose entry point is the class ComputerVisionQuickstarts. De Computer Vision-bibliotheek wordt geïmporteerd.It imports the Computer Vision library.

plugins {
    java
    application
}
application { 
    mainClassName = "ComputerVisionQuickstarts"
}
repositories {
    mavenCentral()
}

Voer vanuit uw werkmap de volgende opdracht uit om een projectmap te maken:From your working directory, run the following command to create a project source folder:

mkdir -p src/main/java

Ga naar de nieuwe map en maak een bestand met de naam ComputerVisionQuickstarts. java.Navigate to the new folder and create a file called ComputerVisionQuickstarts.java. Open het bestand in uw voorkeurs editor of IDE en voeg de volgende- import instructies toe:Open it in your preferred editor or IDE and add the following import statements:

import com.microsoft.azure.cognitiveservices.vision.computervision.*;
import com.microsoft.azure.cognitiveservices.vision.computervision.models.*;

import java.io.File;
import java.io.FileInputStream;
import java.nio.file.Files;

import java.util.ArrayList;
import java.util.List;

Voeg vervolgens een klassen definitie toe voor ComputerVisionQuickstarts.Then add a class definition for ComputerVisionQuickstarts.

De client bibliotheek installerenInstall the client library

Deze Snelstartgids maakt gebruik van de Gradle dependency Manager.This quickstart uses the Gradle dependency manager. U vindt de client bibliotheek en informatie voor andere afhankelijkheids managers in de centrale maven-opslag plaats.You can find the client library and information for other dependency managers on the Maven Central Repository.

Neem in het bestand Build. gradle. KTS van het project de computer vision-client bibliotheek op als een afhankelijkheid.In your project's build.gradle.kts file, include the Computer Vision client library as a dependency.

dependencies {
    compile(group = "com.microsoft.azure.cognitiveservices", name = "azure-cognitiveservices-computervision", version = "1.0.2-beta")
}

ObjectmodelObject model

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Computer Vision Java SDK.The following classes and interfaces handle some of the major features of the Computer Vision Java SDK.

NaamName BeschrijvingDescription
ComputerVisionClientComputerVisionClient Deze klasse is nodig voor alle Computer Vision functionaliteit.This class is needed for all Computer Vision functionality. U maakt de app met uw abonnements gegevens en gebruikt deze om instanties van andere klassen te maken.You instantiate it with your subscription information, and you use it to produce instances of other classes.
ComputerVisionComputerVision Deze klasse is afkomstig van het client object en verwerkt rechtstreeks alle afbeeldings bewerkingen, zoals het analyseren van afbeeldingen, tekst detectie en het genereren van miniaturen.This class comes from the client object and directly handles all of the image operations, such as image analysis, text detection, and thumbnail generation.
VisualFeatureTypesVisualFeatureTypes Deze opsomming definieert de verschillende typen afbeeldings analyse die kunnen worden uitgevoerd in een standaard analyse bewerking.This enum defines the different types of image analysis that can be done in a standard Analyze operation. U geeft een set VisualFeatureTypes-waarden op, afhankelijk van uw behoeften.You specify a set of VisualFeatureTypes values depending on your needs.

CodevoorbeeldenCode examples

Deze code fragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Computer Vision-client bibliotheek voor Java:These code snippets show you how to do the following tasks with the Computer Vision client library for Java:

De client verifiërenAuthenticate the client

Notitie

In deze Quick Start wordt ervan uitgegaan dat u een omgevings variabele hebt gemaakt voor uw computer vision sleutel met de naam COMPUTER_VISION_SUBSCRIPTION_KEY .This quickstart assumes you've created an environment variable for your Computer Vision key, named COMPUTER_VISION_SUBSCRIPTION_KEY.

Met de volgende code wordt een main methode toegevoegd aan uw klasse en worden er variabelen gemaakt voor het Azure-eind punt en de sleutel van uw resource.The following code adds a main method to your class and creates variables for your resource's Azure endpoint and key. U moet uw eigen eindpunt teken reeks invoeren, die u kunt vinden door de overzichts sectie van de Azure portal te controleren.You'll need to enter your own endpoint string, which you can find by checking the Overview section of the Azure portal.

public static void main(String[] args) {
    // Add your Computer Vision subscription key and endpoint to your environment
    // variables.
    // After setting, close and then re-open your command shell or project for the
    // changes to take effect.
    String subscriptionKey = System.getenv("COMPUTER_VISION_SUBSCRIPTION_KEY");
    String endpoint = System.getenv("COMPUTER_VISION_ENDPOINT");

Voeg vervolgens de volgende code toe om een ComputerVisionClient -object te maken en door te geven aan een andere methode (n), die u later wilt definiëren.Next, add the following code to create a ComputerVisionClient object and passes it into other method(s), which you'll define later.

ComputerVisionClient compVisClient = ComputerVisionManager.authenticate(subscriptionKey).withEndpoint(endpoint);
// END - Create an authenticated Computer Vision client.

System.out.println("\nAzure Cognitive Services Computer Vision - Java Quickstart Sample");

// Analyze local and remote images
AnalyzeLocalImage(compVisClient);

// Recognize printed text with OCR for a local and remote (URL) image
RecognizeTextOCRLocal(compVisClient);

Notitie

Als u de omgevings variabele hebt gemaakt nadat u de toepassing hebt gestart, moet u de editor, IDE of shell waarmee deze wordt uitgevoerd, sluiten en opnieuw openen om toegang te krijgen tot de variabele.If you created the environment variable after you launched the application, you'll need to close and reopen the editor, IDE, or shell running it to access the variable.

Een afbeelding analyserenAnalyze an image

Met de volgende code wordt een methode gedefinieerd, AnalyzeLocalImage die gebruikmaakt van het-client object voor het analyseren van een lokale installatie kopie en het afdrukken van de resultaten.The following code defines a method, AnalyzeLocalImage, which uses the client object to analyze a local image and print the results. De methode retourneert een beschrijving van de tekst, categorisatie, lijst met tags, gedetecteerde gezichten, inhouds vlaggen voor volwassenen, hoofd kleuren en afbeeldings type.The method returns a text description, categorization, list of tags, detected faces, adult content flags, main colors, and image type.

Test installatie kopie instellenSet up test image

Maak eerst een resources/ map in de map src/main/ van het project en voeg een installatie kopie toe die u wilt analyseren.First, create a resources/ folder in the src/main/ folder of your project, and add an image you'd like to analyze. Voeg vervolgens de volgende methode definitie toe aan uw ComputerVisionQuickstarts -klasse.Then add the following method definition to your ComputerVisionQuickstarts class. Wijzig, indien nodig, de waarde van de pathToLocalImage zodat deze overeenkomt met uw afbeeldings bestand.If necessary, change the value of the pathToLocalImage to match your image file.

public static void AnalyzeLocalImage(ComputerVisionClient compVisClient) {
    /*
     * Analyze a local image:
     *
     * Set a string variable equal to the path of a local image. The image path
     * below is a relative path.
     */
    String pathToLocalImage = "src\\main\\resources\\myImage.jpg";

Notitie

U kunt ook een externe installatie kopie analyseren met behulp van de URL.You can also analyze a remote image using its URL. Zie de voorbeeld code op github voor scenario's met betrekking tot externe installatie kopieën.See the sample code on GitHub for scenarios involving remote images.

Visuele functies opgevenSpecify visual features

Geef vervolgens op welke visuele functies u wilt uitpakken in de analyse.Next, specify which visual features you'd like to extract in your analysis. Zie de VisualFeatureTypes -inventarisatie voor een volledige lijst.See the VisualFeatureTypes enum for a complete list.

// This list defines the features to be extracted from the image.
List<VisualFeatureTypes> featuresToExtractFromLocalImage = new ArrayList<>();
featuresToExtractFromLocalImage.add(VisualFeatureTypes.DESCRIPTION);
featuresToExtractFromLocalImage.add(VisualFeatureTypes.CATEGORIES);
featuresToExtractFromLocalImage.add(VisualFeatureTypes.TAGS);
featuresToExtractFromLocalImage.add(VisualFeatureTypes.FACES);
featuresToExtractFromLocalImage.add(VisualFeatureTypes.ADULT);
featuresToExtractFromLocalImage.add(VisualFeatureTypes.COLOR);
featuresToExtractFromLocalImage.add(VisualFeatureTypes.IMAGE_TYPE);

AnalyserenAnalyze

Met deze methode worden gedetailleerde resultaten voor elke omvang van de afbeeldings analyse afgedrukt op de console.This method prints detailed results to the console for each scope of image analysis. U wordt aangeraden deze methode aanroep rond te zetten in een try/catch-blok.We recommend you surround this method call in a Try/Catch block. De methode analyzeImageInStream retourneert een ImageAnalysis -object dat alle geëxtraheerde informatie bevat.The analyzeImageInStream method returns an ImageAnalysis object that contains all of extracted information.

// Need a byte array for analyzing a local image.
File rawImage = new File(pathToLocalImage);
byte[] imageByteArray = Files.readAllBytes(rawImage.toPath());

// Call the Computer Vision service and tell it to analyze the loaded image.
ImageAnalysis analysis = compVisClient.computerVision().analyzeImageInStream().withImage(imageByteArray)
        .withVisualFeatures(featuresToExtractFromLocalImage).execute();

In de volgende secties ziet u hoe u deze gegevens in detail kunt parseren.The following sections show how to parse this information in detail.

Beschrijving van afbeelding ophalenGet image description

Met de volgende code wordt de lijst met gegenereerde bijschriften voor de afbeelding opgehaald.The following code gets the list of generated captions for the image. Zie afbeeldingen beschrijvenvoor meer informatie.For more information, see Describe images.

// Display image captions and confidence values.
System.out.println("\nCaptions: ");
for (ImageCaption caption : analysis.description().captions()) {
    System.out.printf("\'%s\' with confidence %f\n", caption.text(), caption.confidence());
}

Categorie van installatie kopie ophalenGet image category

Met de volgende code wordt de gedetecteerde categorie van de afbeelding opgehaald.The following code gets the detected category of the image. Zie afbeeldingen categoriserenvoor meer informatie.For more information, see Categorize images.

// Display image category names and confidence values.
System.out.println("\nCategories: ");
for (Category category : analysis.categories()) {
    System.out.printf("\'%s\' with confidence %f\n", category.name(), category.score());
}

Afbeeldings Tags ophalenGet image tags

Met de volgende code wordt de set gedetecteerde labels in de afbeelding opgehaald.The following code gets the set of detected tags in the image. Zie inhouds Tagsvoor meer informatie.For more information, see Content tags.

// Display image tags and confidence values.
System.out.println("\nTags: ");
for (ImageTag tag : analysis.tags()) {
    System.out.printf("\'%s\' with confidence %f\n", tag.name(), tag.confidence());
}

Gezichten detecterenDetect faces

De volgende code retourneert de gedetecteerde gezichten in de afbeelding met hun rechthoek coördinaten en selecteert face-kenmerken.The following code returns the detected faces in the image with their rectangle coordinates and selects face attributes. Zie gezichts detectievoor meer informatie.For more information, see Face detection.

// Display any faces found in the image and their location.
System.out.println("\nFaces: ");
for (FaceDescription face : analysis.faces()) {
    System.out.printf("\'%s\' of age %d at location (%d, %d), (%d, %d)\n", face.gender(), face.age(),
            face.faceRectangle().left(), face.faceRectangle().top(),
            face.faceRectangle().left() + face.faceRectangle().width(),
            face.faceRectangle().top() + face.faceRectangle().height());
}

Inhoud voor volwassenen, ongepaste of benchmarks detecterenDetect adult, racy, or gory content

Met de volgende code wordt de gedetecteerde aanwezigheid van inhoud voor volwassenen afgedrukt in de installatie kopie.The following code prints the detected presence of adult content in the image. Zie voor meer informatie volwassene, ongepaste, benchmarks-inhoud.For more information, see Adult, racy, gory content.

// Display whether any adult or racy content was detected and the confidence
// values.
System.out.println("\nAdult: ");
System.out.printf("Is adult content: %b with confidence %f\n", analysis.adult().isAdultContent(),
        analysis.adult().adultScore());
System.out.printf("Has racy content: %b with confidence %f\n", analysis.adult().isRacyContent(),
        analysis.adult().racyScore());

Kleuren schema afbeelding ophalenGet image color scheme

Met de volgende code worden de gedetecteerde kleur kenmerken in de afbeelding afgedrukt, zoals de dominante kleuren en accent kleur.The following code prints the detected color attributes in the image, like the dominant colors and accent color. Zie kleuren schema'svoor meer informatie.For more information, see Color schemes.

// Display the image color scheme.
System.out.println("\nColor scheme: ");
System.out.println("Is black and white: " + analysis.color().isBWImg());
System.out.println("Accent color: " + analysis.color().accentColor());
System.out.println("Dominant background color: " + analysis.color().dominantColorBackground());
System.out.println("Dominant foreground color: " + analysis.color().dominantColorForeground());
System.out.println("Dominant colors: " + String.join(", ", analysis.color().dominantColors()));

Domein-specifieke inhoud ophalenGet domain-specific content

Computer Vision kunt een speciaal model gebruiken om verdere analyse van installatie kopieën uit te voeren.Computer Vision can use specialized model to do further analysis on images. Zie Domain-specifieke inhoudvoor meer informatie.For more information, see Domain-specific content.

Met de volgende code worden gegevens over gedetecteerde beroemdheden in de installatie kopie geparseerd.The following code parses data about detected celebrities in the image.

// Display any celebrities detected in the image and their locations.
System.out.println("\nCelebrities: ");
for (Category category : analysis.categories()) {
    if (category.detail() != null && category.detail().celebrities() != null) {
        for (CelebritiesModel celeb : category.detail().celebrities()) {
            System.out.printf("\'%s\' with confidence %f at location (%d, %d), (%d, %d)\n", celeb.name(),
                    celeb.confidence(), celeb.faceRectangle().left(), celeb.faceRectangle().top(),
                    celeb.faceRectangle().left() + celeb.faceRectangle().width(),
                    celeb.faceRectangle().top() + celeb.faceRectangle().height());
        }
    }
}

Met de volgende code worden gegevens over gedetecteerde bezienswaardigheden in de installatie kopie geparseerd.The following code parses data about detected landmarks in the image.

// Display any landmarks detected in the image and their locations.
System.out.println("\nLandmarks: ");
for (Category category : analysis.categories()) {
    if (category.detail() != null && category.detail().landmarks() != null) {
        for (LandmarksModel landmark : category.detail().landmarks()) {
            System.out.printf("\'%s\' with confidence %f\n", landmark.name(), landmark.confidence());
        }
    }
}

Het afbeeldings type ophalenGet the image type

Met de volgende code wordt informatie over het type afbeelding afgedrukt — , ongeacht of het een illustratie of lijn tekening is.The following code prints information about the type of image—whether it is clip art or line drawing.

// Display what type of clip art or line drawing the image is.
System.out.println("\nImage type:");
System.out.println("Clip art type: " + analysis.imageType().clipArtType());
System.out.println("Line drawing type: " + analysis.imageType().lineDrawingType());

Gedrukte en handgeschreven tekst lezenRead printed and handwritten text

Computer Vision kunt zicht bare tekst in een afbeelding lezen en deze converteren naar een teken stroom.Computer Vision can read visible text in an image and convert it to a character stream.

Notitie

U kunt ook tekst in een externe afbeelding lezen met behulp van de URL.You can also read text in a remote image using its URL. Zie de voorbeeld code op github voor scenario's met betrekking tot externe installatie kopieën.See the sample code on GitHub for scenarios involving remote images.

De recognize API aanroepenCall the Recognize API

Gebruik eerst de volgende code om de recognizePrintedTextInStream -methode voor de gegeven afbeelding aan te roepen.First, use the following code to call the recognizePrintedTextInStream method for the given image. Wanneer u deze code aan uw project toevoegt, moet u de waarde van localTextImagePath met het pad naar uw lokale installatie kopie vervangen.When you add this code to your project, you need to replace the value of localTextImagePath with the path to your local image.

/**
 * RECOGNIZE PRINTED TEXT: Displays text found in image with angle and orientation of
 * the block of text.
 */
private static void RecognizeTextOCRLocal(ComputerVisionClient client) {
    System.out.println("-----------------------------------------------");
    System.out.println("RECOGNIZE PRINTED TEXT");
    
    // Replace this string with the path to your own image.
    String localTextImagePath = "<local image path>";
    
    try {
        File rawImage = new File(localTextImagePath);
        byte[] localImageBytes = Files.readAllBytes(rawImage.toPath());

        // Recognize printed text in local image
        OcrResult ocrResultLocal = client.computerVision().recognizePrintedTextInStream()
                .withDetectOrientation(true).withImage(localImageBytes).withLanguage(OcrLanguages.EN).execute();

Met het volgende code blok wordt de geretourneerde tekst verwerkt en geparseerd om het eerste woord van elke regel af te drukken.The following block of code processes the returned text and parses it to print out the first word in each line. U kunt deze code gebruiken om snel inzicht te krijgen in de structuur van een OcrResult -exemplaar.You can use this code to quickly understand the structure of an OcrResult instance.

// Print results of local image
System.out.println();
System.out.println("Recognizing printed text from a local image with OCR ...");
System.out.println("\nLanguage: " + ocrResultLocal.language());
System.out.printf("Text angle: %1.3f\n", ocrResultLocal.textAngle());
System.out.println("Orientation: " + ocrResultLocal.orientation());

boolean firstWord = true;
// Gets entire region of text block
for (OcrRegion reg : ocrResultLocal.regions()) {
    // Get one line in the text block
    for (OcrLine line : reg.lines()) {
        for (OcrWord word : line.words()) {
            // get bounding box of first word recognized (just to demo)
            if (firstWord) {
                System.out.println("\nFirst word in first line is \"" + word.text()
                        + "\" with  bounding box: " + word.boundingBox());
                firstWord = false;
                System.out.println();
            }
            System.out.print(word.text() + " ");
        }
        System.out.println();
    }
}

Ten slotte sluit u het try/catch-blok en de definitie van de methode.Finally, close out the try/catch block and the method definition.

    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

De toepassing uitvoerenRun the application

U kunt de app bouwen met:You can build the app with:

gradle build

Voer de toepassing uit met de gradle run opdracht:Run the application with the gradle run command:

gradle run

Resources opschonenClean up resources

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resource groep verwijderen.If you want to clean up and remove a Cognitive Services subscription, you can delete the resource or resource group. Als u de resource groep verwijdert, worden ook alle bijbehorende resources verwijderd.Deleting the resource group also deletes any other resources associated with it.

Volgende stappenNext steps

In deze Quick Start hebt u geleerd hoe u de Computer Vision Java-bibliotheek kunt gebruiken om basis taken uit te voeren.In this quickstart, you learned how to use the Computer Vision Java library to do basis tasks. Bekijk vervolgens de referentie documentatie voor meer informatie over de-bibliotheek.Next, explore the reference documentation to learn more about the library.

Referentie documentatie | Bron code | van bibliotheek Pakket (NPM) | Voor beeldenReference documentation | Library source code | Package (npm) | Samples

VereistenPrerequisites

  • Een Azure-abonnement: Maak er gratis eenAn Azure subscription - Create one for free
  • De huidige versie van Node.jsThe current version of Node.js
  • Wanneer u uw Azure-abonnement hebt, een computer vision resource in de Azure Portal om uw sleutel en eind punt op te halen.Once you have your Azure subscription, create a Computer Vision resource in the Azure portal to get your key and endpoint. Nadat de app is geïmplementeerd, klikt u op Ga naar resource.After it deploys, click Go to resource.
    • U hebt de sleutel en het eind punt nodig van de resource die u maakt om de toepassing te verbinden met de Computer Vision-service.You will need the key and endpoint from the resource you create to connect your application to the Computer Vision service. U plakt uw sleutel en het eind punt in de onderstaande code verderop in de Quick Start.You'll paste your key and endpoint into the code below later in the quickstart.
    • U kunt de gratis prijs categorie ( F0 ) gebruiken om de service te proberen en later te upgraden naar een betaalde laag voor productie.You can use the free pricing tier (F0) to try the service, and upgrade later to a paid tier for production.
  • Maak omgevings variabelen voor de sleutel-en eind punt-URL, COMPUTER_VISION_SUBSCRIPTION_KEY respectievelijk met de naam en COMPUTER_VISION_ENDPOINT .Create environment variables for the key and endpoint URL, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT, respectively.

InstellenSetting up

Een nieuwe Node.js-toepassing makenCreate a new Node.js application

Maak in een console venster (zoals cmd, Power shell of bash) een nieuwe map voor uw app en navigeer ernaar.In a console window (such as cmd, PowerShell, or Bash), create a new directory for your app, and navigate to it.

mkdir myapp && cd myapp

Voer de npm init opdracht uit om een knooppunt toepassing met een package.json bestand te maken.Run the npm init command to create a node application with a package.json file.

npm init

De client bibliotheek installerenInstall the client library

Installeer de ms-rest-azure en @azure/cognitiveservices-computervision NPM-pakketten:Install the ms-rest-azure and @azure/cognitiveservices-computervision NPM packages:

npm install @azure/cognitiveservices-computervision

Het bestand van uw app package.json wordt bijgewerkt met de afhankelijkheden.Your app's package.json file will be updated with the dependencies.

Het Node.js script voorbereidenPrepare the Node.js script

Maak een nieuw bestand index.jsen open het in een tekst editor.Create a new file, index.js, and open it in a text editor. Voeg de volgende import-instructies toe.Add the following import statements.

'use strict';

const async = require('async');
const fs = require('fs');
const path = require("path");
const createReadStream = require('fs').createReadStream
const sleep = require('util').promisify(setTimeout);
const ComputerVisionClient = require('@azure/cognitiveservices-computervision').ComputerVisionClient;
const ApiKeyCredentials = require('@azure/ms-rest-js').ApiKeyCredentials;

Definieer vervolgens een functie computerVision en Declareer een async-serie met de functie Primary en call back.Then, define a function computerVision and declare an async series with primary function and callback function. U voegt uw Snelstartgids-code toe aan de primaire functie en roept computerVision deze aan onder aan het script.You will add your quickstart code into the primary function, and call computerVision at the bottom of the script.

function computerVision() {
  async.series([
    async function () {
    },
    function () {
      return new Promise((resolve) => {
        resolve();
      })
    }
  ], (err) => {
    throw (err);
  });
}

computerVision();

ObjectmodelObject model

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Computer Vision Node.js SDK.The following classes and interfaces handle some of the major features of the Computer Vision Node.js SDK.

NaamName BeschrijvingDescription
ComputerVisionClientComputerVisionClient Deze klasse is nodig voor alle Computer Vision functionaliteit.This class is needed for all Computer Vision functionality. U maakt de app met uw abonnements gegevens en gebruikt deze om de meeste installatie kopieën uit te voeren.You instantiate it with your subscription information, and you use it to do most image operations.
VisualFeatureTypesVisualFeatureTypes Deze opsomming definieert de verschillende typen afbeeldings analyse die kunnen worden uitgevoerd in een standaard analyse bewerking.This enum defines the different types of image analysis that can be done in a standard Analyze operation. U geeft een set VisualFeatureTypes -waarden op, afhankelijk van uw behoeften.You specify a set of VisualFeatureTypes values depending on your needs.

CodevoorbeeldenCode examples

Deze code fragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Computer Vision-client bibliotheek voor Node.js:These code snippets show you how to do the following tasks with the Computer Vision client library for Node.js:

De client verifiërenAuthenticate the client

Maak variabelen voor het Azure-eind punt en de sleutel van uw resource.Create variables for your resource's Azure endpoint and key. Als u de omgevings variabele hebt gemaakt nadat u de toepassing hebt gestart, moet u de editor, IDE of shell waarmee deze wordt uitgevoerd, sluiten en opnieuw openen om toegang te krijgen tot de variabele.If you created the environment variable after you launched the application, you will need to close and reopen the editor, IDE, or shell running it to access the variable.

/**
 * AUTHENTICATE
 * This single client is used for all examples.
 */
let key = process.env['COMPUTER_VISION_SUBSCRIPTION_KEY'];
let endpoint = process.env['COMPUTER_VISION_ENDPOINT']
if (!key) { throw new Error('Set your environment variables for your subscription key and endpoint.'); }

Exemplaar een client met uw eind punt en sleutel.Instantiate a client with your endpoint and key. Maak een ApiKeyCredentials -object met uw sleutel en eind punt, en gebruik het om een ComputerVisionClient -object te maken.Create a ApiKeyCredentials object with your key and endpoint, and use it to create a ComputerVisionClient object.

let computerVisionClient = new ComputerVisionClient(
    new ApiKeyCredentials({inHeader: {'Ocp-Apim-Subscription-Key': key}}), endpoint);

Een afbeelding analyserenAnalyze an image

De code in deze sectie analyseert externe installatie kopieën om verschillende visuele functies uit te pakken.The code in this section analyzes remote images to extract various visual features. U kunt deze bewerkingen uitvoeren als onderdeel van de methode analyzeImage van het client object, of u kunt ze aanroepen met behulp van afzonderlijke methoden.You can do these operations as part of the analyzeImage method of the client object, or you can call them using individual methods. Raadpleeg de referentie documentatie voor meer informatie.See the reference documentation for details.

Notitie

U kunt ook een lokale installatie kopie analyseren.You can also analyze a local image. Zie de voorbeeld code op github voor scenario's met betrekking tot lokale installatie kopieën.See the sample code on GitHub for scenarios involving local images.

Beschrijving van afbeelding ophalenGet image description

Met de volgende code wordt de lijst met gegenereerde bijschriften voor de afbeelding opgehaald.The following code gets the list of generated captions for the image. Zie afbeeldingen beschrijven voor meer informatie.See Describe images for more details.

Definieer eerst de URL van een afbeelding die moet worden geanalyseerd:First, define the URL of an image to analyze:

var describeURL = 'https://moderatorsampleimages.blob.core.windows.net/samples/sample1.jpg';

Voeg vervolgens de volgende code toe om de beschrijving van de afbeelding op te halen en af te drukken naar de-console.Then add the following code to get the image description and print it to the console.

// Analyze URL image
console.log('Analyzing URL image to describe...', describeURL.split('/').pop());
var caption = (await computerVisionClient.describeImage(describeURL)).captions[0];
console.log(`This may be ${caption.text} (${caption.confidence.toFixed(2)} confidence)`);

Categorie van installatie kopie ophalenGet image category

Met de volgende code wordt de gedetecteerde categorie van de afbeelding opgehaald.The following code gets the detected category of the image. Zie installatie kopieën categoriseren voor meer informatie.See Categorize images for more details.

const categoryURLImage = 'https://moderatorsampleimages.blob.core.windows.net/samples/sample16.png';

// Analyze URL image
console.log('Analyzing category in image...', categoryURLImage.split('/').pop());
let categories = (await computerVisionClient.analyzeImage(categoryURLImage)).categories;
console.log(`Categories: ${formatCategories(categories)}`);

Definieer de hulp functie formatCategories :Define the helper function formatCategories:

// Formats the image categories
function formatCategories(categories) {
  categories.sort((a, b) => b.score - a.score);
  return categories.map(cat => `${cat.name} (${cat.score.toFixed(2)})`).join(', ');
}

Afbeeldings Tags ophalenGet image tags

Met de volgende code wordt de set gedetecteerde labels in de afbeelding opgehaald.The following code gets the set of detected tags in the image. Zie inhouds Tags voor meer informatie.See Content tags for more details.

console.log('-------------------------------------------------');
console.log('DETECT TAGS');
console.log();

// Image of different kind of dog.
const tagsURL = 'https://moderatorsampleimages.blob.core.windows.net/samples/sample16.png';

// Analyze URL image
console.log('Analyzing tags in image...', tagsURL.split('/').pop());
let tags = (await computerVisionClient.analyzeImage(tagsURL, {visualFeatures: ['Tags']})).tags;
console.log(`Tags: ${formatTags(tags)}`);

Definieer de hulp functie formatTags :Define the helper function formatTags:

// Format tags for display
function formatTags(tags) {
  return tags.map(tag => (`${tag.name} (${tag.confidence.toFixed(2)})`)).join(', ');
}

Objecten detecterenDetect objects

Met de volgende code worden algemene objecten in de installatie kopie gedetecteerd en worden deze in de-console afgedrukt.The following code detects common objects in the image and prints them to the console. Zie object detectie voor meer informatie.See Object detection for more details.

// Image of a dog
const objectURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-node-sdk-samples/master/Data/image.jpg';

// Analyze a URL image
console.log('Analyzing objects in image...', objectURL.split('/').pop());
let objects = (await computerVisionClient.analyzeImage(objectURL, {visualFeatures: ['Objects']})).objects;
console.log();

// Print objects bounding box and confidence
if (objects.length) {
    console.log(`${objects.length} object${objects.length == 1 ? '' : 's'} found:`);
    for (let obj of objects) { console.log(`    ${obj.object} (${obj.confidence.toFixed(2)}) at ${formatRectObjects(obj.rectangle)}`); }
} else { console.log('No objects found.'); }

Definieer de hulp functie formatRectObjects :Define the helper function formatRectObjects:

// Formats the bounding box
function formatRectObjects(rect) {
  return `top=${rect.y}`.padEnd(10) + `left=${rect.x}`.padEnd(10) + `bottom=${rect.y + rect.h}`.padEnd(12) 
  + `right=${rect.x + rect.w}`.padEnd(10) + `(${rect.w}x${rect.h})`;
}

Merken detecterenDetect brands

Met de volgende code worden de bedrijfs merken en-logo's in de installatie kopie gedetecteerd en afgedrukt in de-console.The following code detects corporate brands and logos in the image and prints them to the console. Zie merk detectie voor meer informatie.See Brand detection for more details.

const brandURLImage = 'https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/images/red-shirt-logo.jpg';

// Analyze URL image
console.log('Analyzing brands in image...', brandURLImage.split('/').pop());
let brands = (await computerVisionClient.analyzeImage(brandURLImage, {visualFeatures: ['Brands']})).brands;

// Print the brands found
if (brands.length) {
    console.log(`${brands.length} brand${brands.length != 1 ? 's' : ''} found:`);
    for (let brand of brands) {
        console.log(`    ${brand.name} (${brand.confidence.toFixed(2)} confidence)`);
    }
} else { console.log(`No brands found.`); }

Gezichten detecterenDetect faces

Met de volgende code worden de gedetecteerde gezichten in de afbeelding met hun rechthoek coördinaten als resultaat gegeven en selecteert u face Attributes.The following code returns the detected faces in the image with their rectangle coordinates and select face attributes. Zie gezichts detectie voor meer informatie.See Face detection for more details.

const facesImageURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/faces.jpg';

// Analyze URL image.
console.log('Analyzing faces in image...', facesImageURL.split('/').pop());
// Get the visual feature for 'Faces' only.
let faces = (await computerVisionClient.analyzeImage(facesImageURL, {visualFeatures: ['Faces']})).faces;

// Print the bounding box, gender, and age from the faces.
if (faces.length) {
  console.log(`${faces.length} face${faces.length == 1 ? '' : 's'} found:`);
  for (let face of faces) { console.log(`    Gender: ${face.gender}`.padEnd(20) 
    + ` Age: ${face.age}`.padEnd(10) + `at ${formatRectFaces(face.faceRectangle)}`); }
} else { console.log('No faces found.'); }

Definieer de hulp functie formatRectFaces :Define the helper function formatRectFaces:

// Formats the bounding box
function formatRectFaces(rect) {
  return `top=${rect.top}`.padEnd(10) + `left=${rect.left}`.padEnd(10) + `bottom=${rect.top + rect.height}`.padEnd(12) 
    + `right=${rect.left + rect.width}`.padEnd(10) + `(${rect.width}x${rect.height})`;
}

Inhoud voor volwassenen, ongepaste of benchmarks detecterenDetect adult, racy, or gory content

Met de volgende code wordt de gedetecteerde aanwezigheid van inhoud voor volwassenen afgedrukt in de installatie kopie.The following code prints the detected presence of adult content in the image. Zie inhoud voor volwassenen, ongepaste, benchmarks voor meer informatie.See Adult, racy, gory content for more details.

Definieer de URL van de afbeelding die moet worden gebruikt:Define the URL of the image to use:

// The URL image and local images are not racy/adult. 
// Try your own racy/adult images for a more effective result.
const adultURLImage = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/celebrities.jpg';

Voeg vervolgens de volgende code toe om inhoud voor volwassenen te detecteren en de resultaten in de-console af te drukken.Then add the following code to detect adult content and print the results to the console.

// Function to confirm racy or not
const isIt = flag => flag ? 'is' : "isn't";

// Analyze URL image
console.log('Analyzing image for racy/adult content...', adultURLImage.split('/').pop());
var adult = (await computerVisionClient.analyzeImage(adultURLImage, {
  visualFeatures: ['Adult']
})).adult;
console.log(`This probably ${isIt(adult.isAdultContent)} adult content (${adult.adultScore.toFixed(4)} score)`);
console.log(`This probably ${isIt(adult.isRacyContent)} racy content (${adult.racyScore.toFixed(4)} score)`);

Kleuren schema afbeelding ophalenGet image color scheme

Met de volgende code worden de gedetecteerde kleur kenmerken in de afbeelding afgedrukt, zoals de dominante kleuren en accent kleur.The following code prints the detected color attributes in the image, like the dominant colors and accent color. Zie kleuren schema's voor meer informatie.See Color schemes for more details.

const colorURLImage = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/celebrities.jpg';

// Analyze URL image
console.log('Analyzing image for color scheme...', colorURLImage.split('/').pop());
console.log();
let color = (await computerVisionClient.analyzeImage(colorURLImage, {visualFeatures: ['Color']})).color;
printColorScheme(color);

Definieer de hulp functie printColorScheme om de details van het kleuren schema af te drukken op de-console.Define the helper function printColorScheme to print the details of the color scheme to the console.

// Print a detected color scheme
function printColorScheme(colors){
  console.log(`Image is in ${colors.isBwImg ? 'black and white' : 'color'}`);
  console.log(`Dominant colors: ${colors.dominantColors.join(', ')}`);
  console.log(`Dominant foreground color: ${colors.dominantColorForeground}`);
  console.log(`Dominant background color: ${colors.dominantColorBackground}`);
  console.log(`Suggested accent color: #${colors.accentColor}`);
}

Domein-specifieke inhoud ophalenGet domain-specific content

Computer Vision kunt een speciaal model gebruiken om verdere analyse van installatie kopieën uit te voeren.Computer Vision can use specialized model to do further analysis on images. Zie Domain-specifieke inhoud voor meer informatie.See Domain-specific content for more details.

Definieer eerst de URL van een afbeelding die moet worden geanalyseerd:First, define the URL of an image to analyze:

const domainURLImage = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/landmark.jpg';

Met de volgende code worden gegevens over gedetecteerde bezienswaardigheden in de installatie kopie geparseerd.The following code parses data about detected landmarks in the image.

// Analyze URL image
console.log('Analyzing image for landmarks...', domainURLImage.split('/').pop());
let domain = (await computerVisionClient.analyzeImageByDomain('landmarks', domainURLImage)).result.landmarks;

// Prints domain-specific, recognized objects
if (domain.length) {
  console.log(`${domain.length} ${domain.length == 1 ? 'landmark' : 'landmarks'} found:`);
  for (let obj of domain) {
    console.log(`    ${obj.name}`.padEnd(20) + `(${obj.confidence.toFixed(2)} confidence)`.padEnd(20) + `${formatRectDomain(obj.faceRectangle)}`);
  }
} else {
  console.log('No landmarks found.');
}

Definieer de hulp functie formatRectDomain om de locatie gegevens over gedetecteerde bezienswaardigheden te parseren.Define the helper function formatRectDomain to parse the location data about detected landmarks.

// Formats bounding box
function formatRectDomain(rect) {
  if (!rect) return '';
  return `top=${rect.top}`.padEnd(10) + `left=${rect.left}`.padEnd(10) + `bottom=${rect.top + rect.height}`.padEnd(12) +
    `right=${rect.left + rect.width}`.padEnd(10) + `(${rect.width}x${rect.height})`;
}

Het afbeeldings type ophalenGet the image type

Met de volgende code wordt informatie over het type afbeelding afgedrukt — , ongeacht of het een illustratie of lijn tekening is.The following code prints information about the type of image—whether it is clip art or line drawing.

const typeURLImage = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-python-sdk-samples/master/samples/vision/images/make_things_happen.jpg';

 // Analyze URL image
console.log('Analyzing type in image...', typeURLImage.split('/').pop());
let types = (await computerVisionClient.analyzeImage(typeURLImage, {visualFeatures: ['ImageType']})).imageType;
console.log(`Image appears to be ${describeType(types)}`);

Definieer de hulp functie describeType :Define the helper function describeType:

function describeType(imageType) {
  if (imageType.clipArtType && imageType.clipArtType > imageType.lineDrawingType) return 'clip art';
  if (imageType.lineDrawingType && imageType.clipArtType < imageType.lineDrawingType) return 'a line drawing';
  return 'a photograph';
}

Gedrukte en handgeschreven tekst lezenRead printed and handwritten text

Computer Vision kunt zicht bare tekst in een afbeelding lezen en deze converteren naar een teken stroom.Computer Vision can read visible text in an image and convert it to a character stream.

Notitie

U kunt ook tekst uit een lokale installatie kopie lezen.You can also read text from a local image. Zie de voorbeeld code op github voor scenario's met betrekking tot lokale installatie kopieën.See the sample code on GitHub for scenarios involving local images.

Test installatie kopieën instellenSet up test images

Sla een verwijzing op naar de URL van de afbeeldingen waaruit u tekst wilt extra heren.Save a reference of the URL of the images you want to extract text from.

// URL images containing printed and handwritten text
 const printedText     = 'https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg';
 const handwrittenText = 'https://raw.githubusercontent.com/MicrosoftDocs/azure-docs/master/articles/cognitive-services/Computer-vision/Images/readsample.jpg';

De recognize API aanroepenCall the Recognize API

Voeg de onderstaande code toe, waarmee de recognizeText functie wordt aangeroepen voor de opgegeven installatie kopieën.Add the code below, which calls the recognizeText function for the given images.

// Recognize text in printed image
console.log('Recognizing printed text...', printedText.split('/').pop());
var printed = await recognizeText(computerVisionClient, 'Printed', printedText);
printRecText(printed);

// Recognize text in handwritten image
console.log('\nRecognizing handwritten text...', handwrittenText.split('/').pop());
var handwriting = await recognizeText(computerVisionClient, 'Handwritten', handwrittenText);
printRecText(handwriting);

Definieer de recognizeText functie.Define the recognizeText function. Hiermee wordt de methode recognizeText op het client object aangeroepen, die een bewerkings-id retourneert en een asynchroon proces start om de inhoud van de installatie kopie te lezen.This calls the recognizeText method on the client object, which returns an operation ID and starts an asynchronous process to read the content of the image. Vervolgens wordt de bewerkings-ID gebruikt om de bewerking met een interval van één seconde te controleren totdat de resultaten worden geretourneerd.Then it uses the operation ID to check the operation at one-second intervals until the results are returned. Vervolgens worden de geëxtraheerde resultaten geretourneerd.It then returns the extracted results.

// Perform text recognition and await the result
async function recognizeText(client, mode, url) {
  // To recognize text in a local image, replace client.recognizeText() with recognizeTextInStream() as shown:
  // result = await client.recognizeTextInStream(mode, () => createReadStream(localImagePath));
  let result = await client.recognizeText(mode, url);
  // Operation ID is last path segment of operationLocation (a URL)
  let operation = result.operationLocation.split('/').slice(-1)[0];

  // Wait for text recognition to complete
  // result.status is initially undefined, since it's the result of recognizeText
  while (result.status !== 'Succeeded') { await sleep(1000); result = await client.getTextOperationResult(operation); }
  return result.recognitionResult;
}

Definieer vervolgens de functie Help printRecText , waarmee de resultaten van een herkennings bewerking worden afgedrukt op de-console.Then, define the helper function printRecText, which prints the results of a Recognize operation to the console.

// Prints all text from OCR result
function printRecText(ocr) {
  if (ocr.lines.length) {
      console.log('Recognized text:');
      for (let line of ocr.lines) {
          console.log(line.words.map(w => w.text).join(' '));
      }
  }
  else { console.log('No recognized text.'); }
}

De toepassing uitvoerenRun the application

Voer de toepassing uit met de node opdracht in uw Quick Start-bestand.Run the application with the node command on your quickstart file.

node index.js

Resources opschonenClean up resources

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resource groep verwijderen.If you want to clean up and remove a Cognitive Services subscription, you can delete the resource or resource group. Als u de resource groep verwijdert, worden ook alle bijbehorende resources verwijderd.Deleting the resource group also deletes any other resources associated with it.

Volgende stappenNext steps

Referentie documentatie | Bron code | van bibliotheek Pakket (PiPy) | Voor beeldenReference documentation | Library source code | Package (PiPy) | Samples

VereistenPrerequisites

  • Een Azure-abonnement: Maak er gratis eenAn Azure subscription - Create one for free
  • Python 3. xPython 3.x
  • Wanneer u uw Azure-abonnement hebt, een computer vision resource in de Azure Portal om uw sleutel en eind punt op te halen.Once you have your Azure subscription, create a Computer Vision resource in the Azure portal to get your key and endpoint. Nadat de app is geïmplementeerd, klikt u op Ga naar resource.After it deploys, click Go to resource.
    • U hebt de sleutel en het eind punt nodig van de resource die u maakt om de toepassing te verbinden met de Computer Vision-service.You will need the key and endpoint from the resource you create to connect your application to the Computer Vision service. U plakt uw sleutel en het eind punt in de onderstaande code verderop in de Quick Start.You'll paste your key and endpoint into the code below later in the quickstart.
    • U kunt de gratis prijs categorie ( F0 ) gebruiken om de service te proberen en later te upgraden naar een betaalde laag voor productie.You can use the free pricing tier (F0) to try the service, and upgrade later to a paid tier for production.
  • Maak omgevings variabelen voor de sleutel-en eind punt-URL, COMPUTER_VISION_SUBSCRIPTION_KEY respectievelijk met de naam en COMPUTER_VISION_ENDPOINT .Create environment variables for the key and endpoint URL, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT, respectively.

InstellenSetting up

Een nieuwe Python-toepassing makenCreate a new Python application

Maak bijvoorbeeld een nieuwe python — -scriptQuickStart-file.py.Create a new Python script—quickstart-file.py, for example. Open het vervolgens in uw voorkeurs editor of IDE en importeer de volgende bibliotheken.Then open it in your preferred editor or IDE and import the following libraries.

from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes
from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes
from msrest.authentication import CognitiveServicesCredentials

from array import array
import os
from PIL import Image
import sys
import time

Maak vervolgens variabelen voor het Azure-eind punt en de sleutel van uw resource.Then, create variables for your resource's Azure endpoint and key.

# Add your Computer Vision subscription key to your environment variables.
if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:
    subscription_key = os.environ['COMPUTER_VISION_SUBSCRIPTION_KEY']
else:
    print("\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\n**Restart your shell or IDE for changes to take effect.**")
    sys.exit()
# Add your Computer Vision endpoint to your environment variables.
if 'COMPUTER_VISION_ENDPOINT' in os.environ:
    endpoint = os.environ['COMPUTER_VISION_ENDPOINT']
else:
    print("\nSet the COMPUTER_VISION_ENDPOINT environment variable.\n**Restart your shell or IDE for changes to take effect.**")
    sys.exit()

Notitie

Als u de omgevings variabele hebt gemaakt nadat u de toepassing hebt gestart, moet u de editor, IDE of shell waarmee deze wordt uitgevoerd, sluiten en opnieuw openen om toegang te krijgen tot de variabele.If you created the environment variable after you launched the application, you will need to close and reopen the editor, IDE, or shell running it to access the variable.

De client bibliotheek installerenInstall the client library

U kunt de client bibliotheek installeren met:You can install the client library with:

pip install --upgrade azure-cognitiveservices-vision-computervision

ObjectmodelObject model

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Computer Vision python SDK.The following classes and interfaces handle some of the major features of the Computer Vision Python SDK.

NaamName BeschrijvingDescription
ComputerVisionClientOperationsMixinComputerVisionClientOperationsMixin Met deze klasse worden alle afbeeldings bewerkingen, zoals het analyseren van afbeeldingen, tekst detectie en het genereren van miniaturen, direct afgehandeld.This class directly handles all of the image operations, such as image analysis, text detection, and thumbnail generation.
ComputerVisionClientComputerVisionClient Deze klasse is nodig voor alle Computer Vision functionaliteit.This class is needed for all Computer Vision functionality. U maakt de app met uw abonnements gegevens en gebruikt deze om instanties van andere klassen te maken.You instantiate it with your subscription information, and you use it to produce instances of other classes. Het implementeert ComputerVisionClientOperationsMixin.It implements ComputerVisionClientOperationsMixin.
VisualFeatureTypesVisualFeatureTypes Deze opsomming definieert de verschillende typen afbeeldings analyse die kunnen worden uitgevoerd in een standaard analyse bewerking.This enum defines the different types of image analysis that can be done in a standard Analyze operation. U geeft een set VisualFeatureTypes -waarden op, afhankelijk van uw behoeften.You specify a set of VisualFeatureTypes values depending on your needs.

CodevoorbeeldenCode examples

Deze code fragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Computer Vision-client bibliotheek voor python:These code snippets show you how to do the following tasks with the Computer Vision client library for Python:

De client verifiërenAuthenticate the client

Notitie

In deze Quick Start wordt ervan uitgegaan dat u een omgevings variabele hebt gemaakt voor uw computer vision sleutel met de naam COMPUTER_VISION_SUBSCRIPTION_KEY .This quickstart assumes you've created an environment variable for your Computer Vision key, named COMPUTER_VISION_SUBSCRIPTION_KEY.

Exemplaar een client met uw eind punt en sleutel.Instantiate a client with your endpoint and key. Maak een CognitiveServicesCredentials -object met uw sleutel en gebruik het met uw eind punt om een ComputerVisionClient -object te maken.Create a CognitiveServicesCredentials object with your key, and use it with your endpoint to create a ComputerVisionClient object.

computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))

Een afbeelding analyserenAnalyze an image

Sla een verwijzing op naar de URL van een afbeelding die u wilt analyseren.Save a reference to the URL of an image you want to analyze.

remote_image_url = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/landmark.jpg"

Beschrijving van afbeelding ophalenGet image description

Met de volgende code wordt de lijst met gegenereerde bijschriften voor de afbeelding opgehaald.The following code gets the list of generated captions for the image. Zie afbeeldingen beschrijven voor meer informatie.See Describe images for more details.

'''
Describe an Image - remote
This example describes the contents of an image with the confidence score.
'''
print("===== Describe an image - remote =====")
# Call API
description_results = computervision_client.describe_image(remote_image_url )

# Get the captions (descriptions) from the response, with confidence level
print("Description of remote image: ")
if (len(description_results.captions) == 0):
    print("No description detected.")
else:
    for caption in description_results.captions:
        print("'{}' with confidence {:.2f}%".format(caption.text, caption.confidence * 100))

Categorie van installatie kopie ophalenGet image category

Met de volgende code wordt de gedetecteerde categorie van de afbeelding opgehaald.The following code gets the detected category of the image. Zie installatie kopieën categoriseren voor meer informatie.See Categorize images for more details.

'''
Categorize an Image - remote
This example extracts (general) categories from a remote image with a confidence score.
'''
print("===== Categorize an image - remote =====")
# Select the visual feature(s) you want.
remote_image_features = ["categories"]
# Call API with URL and features
categorize_results_remote = computervision_client.analyze_image(remote_image_url , remote_image_features)

# Print results with confidence score
print("Categories from remote image: ")
if (len(categorize_results_remote.categories) == 0):
    print("No categories detected.")
else:
    for category in categorize_results_remote.categories:
        print("'{}' with confidence {:.2f}%".format(category.name, category.score * 100))

Afbeeldings Tags ophalenGet image tags

Met de volgende code wordt de set gedetecteerde labels in de afbeelding opgehaald.The following code gets the set of detected tags in the image. Zie inhouds Tags voor meer informatie.See Content tags for more details.

'''
Tag an Image - remote
This example returns a tag (key word) for each thing in the image.
'''
print("===== Tag an image - remote =====")
# Call API with remote image
tags_result_remote = computervision_client.tag_image(remote_image_url )

# Print results with confidence score
print("Tags in the remote image: ")
if (len(tags_result_remote.tags) == 0):
    print("No tags detected.")
else:
    for tag in tags_result_remote.tags:
        print("'{}' with confidence {:.2f}%".format(tag.name, tag.confidence * 100))

Objecten detecterenDetect objects

Met de volgende code worden algemene objecten in de installatie kopie gedetecteerd en worden deze in de-console afgedrukt.The following code detects common objects in the image and prints them to the console. Zie object detectie voor meer informatie.See Object detection for more details.

'''
Detect Objects - remote
This example detects different kinds of objects with bounding boxes in a remote image.
'''
print("===== Detect Objects - remote =====")
# Get URL image with different objects
remote_image_url_objects = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/objects.jpg"
# Call API with URL
detect_objects_results_remote = computervision_client.detect_objects(remote_image_url_objects)

# Print detected objects results with bounding boxes
print("Detecting objects in remote image:")
if len(detect_objects_results_remote.objects) == 0:
    print("No objects detected.")
else:
    for object in detect_objects_results_remote.objects:
        print("object at location {}, {}, {}, {}".format( \
        object.rectangle.x, object.rectangle.x + object.rectangle.w, \
        object.rectangle.y, object.rectangle.y + object.rectangle.h))

Merken detecterenDetect brands

Met de volgende code worden de bedrijfs merken en-logo's in de installatie kopie gedetecteerd en afgedrukt in de-console.The following code detects corporate brands and logos in the image and prints them to the console. Zie merk detectie voor meer informatie.See Brand detection for more details.

'''
Detect Brands - remote
This example detects common brands like logos and puts a bounding box around them.
'''
print("===== Detect Brands - remote =====")
# Get a URL with a brand logo
remote_image_url = "https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/images/gray-shirt-logo.jpg"
# Select the visual feature(s) you want
remote_image_features = ["brands"]
# Call API with URL and features
detect_brands_results_remote = computervision_client.analyze_image(remote_image_url, remote_image_features)

print("Detecting brands in remote image: ")
if len(detect_brands_results_remote.brands) == 0:
    print("No brands detected.")
else:
    for brand in detect_brands_results_remote.brands:
        print("'{}' brand detected with confidence {:.1f}% at location {}, {}, {}, {}".format( \
        brand.name, brand.confidence * 100, brand.rectangle.x, brand.rectangle.x + brand.rectangle.w, \
        brand.rectangle.y, brand.rectangle.y + brand.rectangle.h))

Gezichten detecterenDetect faces

Met de volgende code worden de gedetecteerde gezichten in de afbeelding met hun rechthoek coördinaten als resultaat gegeven en selecteert u face Attributes.The following code returns the detected faces in the image with their rectangle coordinates and select face attributes. Zie gezichts detectie voor meer informatie.See Face detection for more details.

'''
Detect Faces - remote
This example detects faces in a remote image, gets their gender and age, 
and marks them with a bounding box.
'''
print("===== Detect Faces - remote =====")
# Get an image with faces
remote_image_url_faces = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/faces.jpg"
# Select the visual feature(s) you want.
remote_image_features = ["faces"]
# Call the API with remote URL and features
detect_faces_results_remote = computervision_client.analyze_image(remote_image_url_faces, remote_image_features)

# Print the results with gender, age, and bounding box
print("Faces in the remote image: ")
if (len(detect_faces_results_remote.faces) == 0):
    print("No faces detected.")
else:
    for face in detect_faces_results_remote.faces:
        print("'{}' of age {} at location {}, {}, {}, {}".format(face.gender, face.age, \
        face.face_rectangle.left, face.face_rectangle.top, \
        face.face_rectangle.left + face.face_rectangle.width, \
        face.face_rectangle.top + face.face_rectangle.height))

Inhoud voor volwassenen, ongepaste of benchmarks detecterenDetect adult, racy, or gory content

Met de volgende code wordt de gedetecteerde aanwezigheid van inhoud voor volwassenen afgedrukt in de installatie kopie.The following code prints the detected presence of adult content in the image. Zie inhoud voor volwassenen, ongepaste, benchmarks voor meer informatie.See Adult, racy, gory content for more details.

'''
Detect Adult or Racy Content - remote
This example detects adult or racy content in a remote image, then prints the adult/racy score.
The score is ranged 0.0 - 1.0 with smaller numbers indicating negative results.
'''
print("===== Detect Adult or Racy Content - remote =====")
# Select the visual feature(s) you want
remote_image_features = ["adult"]
# Call API with URL and features
detect_adult_results_remote = computervision_client.analyze_image(remote_image_url, remote_image_features)

# Print results with adult/racy score
print("Analyzing remote image for adult or racy content ... ")
print("Is adult content: {} with confidence {:.2f}".format(detect_adult_results_remote.adult.is_adult_content, detect_adult_results_remote.adult.adult_score * 100))
print("Has racy content: {} with confidence {:.2f}".format(detect_adult_results_remote.adult.is_racy_content, detect_adult_results_remote.adult.racy_score * 100))

Kleuren schema afbeelding ophalenGet image color scheme

Met de volgende code worden de gedetecteerde kleur kenmerken in de afbeelding afgedrukt, zoals de dominante kleuren en accent kleur.The following code prints the detected color attributes in the image, like the dominant colors and accent color. Zie kleuren schema's voor meer informatie.See Color schemes for more details.

'''
Detect Color - remote
This example detects the different aspects of its color scheme in a remote image.
'''
print("===== Detect Color - remote =====")
# Select the feature(s) you want
remote_image_features = ["color"]
# Call API with URL and features
detect_color_results_remote = computervision_client.analyze_image(remote_image_url, remote_image_features)

# Print results of color scheme
print("Getting color scheme of the remote image: ")
print("Is black and white: {}".format(detect_color_results_remote.color.is_bw_img))
print("Accent color: {}".format(detect_color_results_remote.color.accent_color))
print("Dominant background color: {}".format(detect_color_results_remote.color.dominant_color_background))
print("Dominant foreground color: {}".format(detect_color_results_remote.color.dominant_color_foreground))
print("Dominant colors: {}".format(detect_color_results_remote.color.dominant_colors))

Domein-specifieke inhoud ophalenGet domain-specific content

Computer Vision kunt een speciaal model gebruiken om verdere analyse van installatie kopieën uit te voeren.Computer Vision can use specialized model to do further analysis on images. Zie Domain-specifieke inhoud voor meer informatie.See Domain-specific content for more details.

Met de volgende code worden gegevens over gedetecteerde beroemdheden in de installatie kopie geparseerd.The following code parses data about detected celebrities in the image.

'''
Detect Domain-specific Content - remote
This example detects celebrites and landmarks in remote images.
'''
print("===== Detect Domain-specific Content - remote =====")
# URL of one or more celebrities
remote_image_url_celebs = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/faces.jpg"
# Call API with content type (celebrities) and URL
detect_domain_results_celebs_remote = computervision_client.analyze_image_by_domain("celebrities", remote_image_url_celebs)

# Print detection results with name
print("Celebrities in the remote image:")
if len(detect_domain_results_celebs_remote.result["celebrities"]) == 0:
    print("No celebrities detected.")
else:
    for celeb in detect_domain_results_celebs_remote.result["celebrities"]:
        print(celeb["name"])

Met de volgende code worden gegevens over gedetecteerde bezienswaardigheden in de installatie kopie geparseerd.The following code parses data about detected landmarks in the image.

# Call API with content type (landmarks) and URL
detect_domain_results_landmarks = computervision_client.analyze_image_by_domain("landmarks", remote_image_url)
print()

print("Landmarks in the remote image:")
if len(detect_domain_results_landmarks.result["landmarks"]) == 0:
    print("No landmarks detected.")
else:
    for landmark in detect_domain_results_landmarks.result["landmarks"]:
        print(landmark["name"])

Het afbeeldings type ophalenGet the image type

Met de volgende code wordt informatie over het type afbeelding afgedrukt — , ongeacht of het een illustratie of lijn tekening is.The following code prints information about the type of image—whether it is clip art or line drawing.

'''
Detect Image Types - remote
This example detects an image's type (clip art/line drawing).
'''
print("===== Detect Image Types - remote =====")
# Get URL of an image with a type
remote_image_url_type = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/type-image.jpg"
# Select visual feature(s) you want
remote_image_features = VisualFeatureTypes.image_type
# Call API with URL and features
detect_type_results_remote = computervision_client.analyze_image(remote_image_url_type, remote_image_features)

# Prints type results with degree of accuracy
print("Type of remote image:")
if detect_type_results_remote.image_type.clip_art_type == 0:
    print("Image is not clip art.")
elif detect_type_results_remote.image_type.line_drawing_type == 1:
    print("Image is ambiguously clip art.")
elif detect_type_results_remote.image_type.line_drawing_type == 2:
    print("Image is normal clip art.")
else:
    print("Image is good clip art.")

if detect_type_results_remote.image_type.line_drawing_type == 0:
    print("Image is not a line drawing.")
else:
    print("Image is a line drawing")

Gedrukte en handgeschreven tekst lezenRead printed and handwritten text

Computer Vision kunt zicht bare tekst in een afbeelding lezen en deze converteren naar een teken stroom.Computer Vision can read visible text in an image and convert it to a character stream. Dit doet u in twee delen.You do this in two parts.

De Lees-API aanroepenCall the Read API

Gebruik eerst de volgende code om de Lees methode voor de gegeven afbeelding aan te roepen.First, use the following code to call the read method for the given image. Hiermee wordt een bewerkings-ID geretourneerd en wordt een asynchroon proces gestart om de inhoud van de afbeelding te lezen.This returns an operation ID and starts an asynchronous process to read the content of the image.

'''
Batch Read File, recognize handwritten text - remote
This example will extract handwritten text in an image, then print results, line by line.
This API call can also recognize handwriting (not shown).
'''
print("===== Batch Read File - remote =====")
# Get an image with handwritten text
remote_image_handw_text_url = "https://raw.githubusercontent.com/MicrosoftDocs/azure-docs/master/articles/cognitive-services/Computer-vision/Images/readsample.jpg"

# Call API with URL and raw response (allows you to get the operation location)
recognize_handw_results = computervision_client.read(remote_image_handw_text_url,  raw=True)

Lees resultaten ophalenGet Read results

Vervolgens haalt u de bewerkings-ID op die wordt geretourneerd door de Lees aanroep en gebruikt u deze om de service te doorzoeken op de resultaten van de bewerking.Next, get the operation ID returned from the read call, and use it to query the service for operation results. Met de volgende code wordt de bewerking met een interval van één seconde gecontroleerd totdat de resultaten worden geretourneerd.The following code checks the operation at one-second intervals until the results are returned. Vervolgens worden de geëxtraheerde tekst gegevens afgedrukt naar de-console.It then prints the extracted text data to the console.

# Get the operation location (URL with an ID at the end) from the response
operation_location_remote = recognize_handw_results.headers["Operation-Location"]
# Grab the ID from the URL
operation_id = operation_location_remote.split("/")[-1]

# Call the "GET" API and wait for it to retrieve the results 
while True:
    get_handw_text_results = computervision_client.get_read_result(operation_id)
    if get_handw_text_results.status not in ['NotStarted', 'Running']:
        break
    time.sleep(1)

# Print the detected text, line by line
if get_handw_text_results.status == OperationStatusCodes.succeeded:
    for text_result in get_handw_text_results.read_results:
        for line in text_result.lines:
            print(line.text)
            print(line.bounding_box)
print()

De toepassing uitvoerenRun the application

Voer de toepassing uit met de python opdracht in uw Quick Start-bestand.Run the application with the python command on your quickstart file.

python quickstart-file.py

Resources opschonenClean up resources

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resource groep verwijderen.If you want to clean up and remove a Cognitive Services subscription, you can delete the resource or resource group. Als u de resource groep verwijdert, worden ook alle bijbehorende resources verwijderd.Deleting the resource group also deletes any other resources associated with it.

Volgende stappenNext steps

In deze Quick Start hebt u geleerd hoe u de Computer Vision-bibliotheek voor python kunt gebruiken om basis taken uit te voeren.In this quickstart, you learned how to use the Computer Vision library for Python to do basis tasks. Bekijk vervolgens de referentie documentatie voor meer informatie over de-bibliotheek.Next, explore the reference documentation to learn more about the library.

Referentie documentatie | Bron code | van bibliotheek PakketReference documentation | Library source code | Package

VereistenPrerequisites

  • Een Azure-abonnement: Maak er gratis eenAn Azure subscription - Create one for free
  • De nieuwste versie van GoThe latest version of Go
  • Wanneer u uw Azure-abonnement hebt, een computer vision resource in de Azure Portal om uw sleutel en eind punt op te halen.Once you have your Azure subscription, create a Computer Vision resource in the Azure portal to get your key and endpoint. Nadat de app is geïmplementeerd, klikt u op Ga naar resource.After it deploys, click Go to resource.
    • U hebt de sleutel en het eind punt nodig van de resource die u maakt om de toepassing te verbinden met de Computer Vision-service.You will need the key and endpoint from the resource you create to connect your application to the Computer Vision service. U plakt uw sleutel en het eind punt in de onderstaande code verderop in de Quick Start.You'll paste your key and endpoint into the code below later in the quickstart.
    • U kunt de gratis prijs categorie ( F0 ) gebruiken om de service te proberen en later te upgraden naar een betaalde laag voor productie.You can use the free pricing tier (F0) to try the service, and upgrade later to a paid tier for production.
  • Maak omgevings variabelen voor de sleutel-en eind punt-URL, COMPUTER_VISION_SUBSCRIPTION_KEY respectievelijk met de naam en COMPUTER_VISION_ENDPOINT .Create environment variables for the key and endpoint URL, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT, respectively.

InstellenSetting up

Een go-projectmap makenCreate a Go project directory

Maak in een console venster (cmd, Power shell, Terminal, bash) een nieuwe werk ruimte voor uw Go-project my-app met de naam en navigeer ernaar.In a console window (cmd, PowerShell, Terminal, Bash), create a new workspace for your Go project, named my-app, and navigate to it.

mkdir -p my-app/{src, bin, pkg}  
cd my-app

Uw werk ruimte bevat drie mappen:Your workspace will contain three folders:

  • src -deze map bevat bron code en pakketten.src - This directory will contain source code and packages. Alle pakketten die met de go get opdracht zijn geïnstalleerd, worden in deze map geplaatst.Any packages installed with the go get command will go in this directory.
  • pakket -deze map bevat de gecompileerde go package-objecten.pkg - This directory will contain the compiled Go package objects. Deze bestanden hebben allemaal een .a extensie.These files all have an .a extension.
  • bin : deze map bevat de binaire uitvoer bare bestanden die worden gemaakt wanneer u uitvoert go install .bin - This directory will contain the binary executable files that are created when you run go install.

Tip

Zie de Go-taal documentatievoor meer informatie over de structuur van een go-werk ruimte.To learn more about the structure of a Go workspace, see the Go language documentation. Deze hand leiding bevat informatie over het instellen van $GOPATH en $GOROOT .This guide includes information for setting $GOPATH and $GOROOT.

De client bibliotheek voor Go installerenInstall the client library for Go

Installeer vervolgens de client bibliotheek voor Go:Next, install the client library for Go:

go get -u https://github.com/Azure/azure-sdk-for-go/tree/master/services/cognitiveservices/v2.1/computervision

of, als u dep gebruikt, binnen de uitvoer van de opslagplaats:or if you use dep, within your repo run:

dep ensure -add https://github.com/Azure/azure-sdk-for-go/tree/master/services/cognitiveservices/v2.1/computervision

Een go-toepassing makenCreate a Go application

Maak vervolgens een bestand in de src -map met de naam sample-app.go :Next, create a file in the src directory named sample-app.go:

cd src
touch sample-app.go

Open sample-app.go de IDE-of tekst editor van uw voor keur.Open sample-app.go in your preferred IDE or text editor. Voeg vervolgens de naam van het pakket toe en importeer de volgende bibliotheken:Then add the package name and import the following libraries:

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "github.com/Azure/azure-sdk-for-go/services/cognitiveservices/v2.0/computervision"
    "github.com/Azure/go-autorest/autorest"
    "io"
    "log"
    "os"
    "strings"
    "time"
)

Declareer ook een context in de hoofdmap van uw script.Also, declare a context at the root of your script. U hebt dit object nodig om de meeste Computer Vision functie aanroepen uit te voeren:You'll need this object to execute most Computer Vision function calls:

// Declare global so don't have to pass it to all of the tasks.
var computerVisionContext context.Context

Vervolgens begint u met het toevoegen van code om verschillende Computer Vision bewerkingen uit te voeren.Next, you'll begin adding code to carry out different Computer Vision operations.

ObjectmodelObject model

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Computer Vision go-SDK.The following classes and interfaces handle some of the major features of the Computer Vision Go SDK.

NaamName BeschrijvingDescription
BaseClientBaseClient Deze klasse is nodig voor alle Computer Vision functionaliteit, zoals het analyseren van afbeeldingen en het lezen van tekst.This class is needed for all Computer Vision functionality, such as image analysis and text reading. U maakt de app met uw abonnements gegevens en gebruikt deze om de meeste installatie kopieën uit te voeren.You instantiate it with your subscription information, and you use it to do most image operations.
ImageAnalysisImageAnalysis Dit type bevat de resultaten van een AnalyzeImage -functie aanroep.This type contains the results of an AnalyzeImage function call. Er zijn soort gelijke typen voor elk van de categorie-specifieke functies.There are similar types for each of the category-specific functions.
ReadOperationResultReadOperationResult Dit type bevat de resultaten van een batch-Lees bewerking.This type contains the results of a Batch Read operation.
VisualFeatureTypesVisualFeatureTypes Dit type definieert de verschillende soorten afbeeldings analyse die kan worden uitgevoerd in een standaard analyse bewerking.This type defines the different kinds of image analysis that can be done in a standard Analyze operation. U geeft een set VisualFeatureTypes-waarden op, afhankelijk van uw behoeften.You specify a set of VisualFeatureTypes values depending on your needs.

CodevoorbeeldenCode examples

Deze code fragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Computer Vision-client bibliotheek voor Go:These code snippets show you how to do the following tasks with the Computer Vision client library for Go:

De client verifiërenAuthenticate the client

Notitie

Bij deze stap wordt ervan uitgegaan dat u omgevings variabelen hebt gemaakt voor uw computer vision sleutel en eind punt, met de naam COMPUTER_VISION_SUBSCRIPTION_KEY en COMPUTER_VISION_ENDPOINT respectievelijk.This step assumes you've created environment variables for your Computer Vision key and endpoint, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT respectively.

Maak een main functie en voeg de volgende code toe om een client met uw eind punt en sleutel te instantiëren.Create a main function and add the following code to it to instantiate a client with your endpoint and key.

/*  
 * Configure the Computer Vision client
 * Set environment variables for COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT,
 * then restart your command shell or your IDE for changes to take effect.
 */
  computerVisionKey := os.Getenv("COMPUTER_VISION_SUBSCRIPTION_KEY")

if (computerVisionKey == "") {
    log.Fatal("\n\nPlease set a COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\n" +
                          "**You may need to restart your shell or IDE after it's set.**\n")
}

endpointURL := os.Getenv("COMPUTER_VISION_ENDPOINT")
if (endpointURL == "") {
    log.Fatal("\n\nPlease set a COMPUTER_VISION_ENDPOINT environment variable.\n" +
                          "**You may need to restart your shell or IDE after it's set.**")
}

computerVisionClient := computervision.New(endpointURL);
computerVisionClient.Authorizer = autorest.NewCognitiveServicesAuthorizer(computerVisionKey)

computerVisionContext = context.Background()
/*
 * END - Configure the Computer Vision client
 */

Een afbeelding analyserenAnalyze an image

De volgende code gebruikt het client object voor het analyseren van een externe installatie kopie en het afdrukken van de resultaten naar de-console.The following code uses the client object to analyze a remote image and print the results to the console. U kunt een beschrijving, categorisatie, lijst met tags, gedetecteerde objecten, gedetecteerde merken, gedetecteerde gezichten, inhouds vlaggen voor volwassenen, hoofd kleuren en afbeeldings type ophalen.You can get a text description, categorization, list of tags, detected objects, detected brands, detected faces, adult content flags, main colors, and image type.

Test installatie kopie instellenSet up test image

Sla eerst een verwijzing op naar de URL van de afbeelding die u wilt analyseren.First save a reference to the URL of the image you want to analyze. Plaats dit in uw main functie.Put this inside your main function.

landmarkImageURL := "https://github.com/Azure-Samples/cognitive-services-sample-data-files/raw/master/ComputerVision/Images/landmark.jpg"

Notitie

U kunt ook een lokale installatie kopie analyseren.You can also analyze a local image. Zie de voorbeeld code op github voor scenario's met betrekking tot lokale installatie kopieën.See the sample code on GitHub for scenarios involving local images.

Visuele functies opgevenSpecify visual features

Met de volgende functie aanroepen worden verschillende visuele functies uit de voorbeeld afbeelding geëxtraheerd.The following function calls extract different visual features from the sample image. U definieert deze functies in de volgende secties.You'll define these functions in the following sections.

// Analyze features of an image, remote
DescribeRemoteImage(computerVisionClient, landmarkImageURL)
CategorizeRemoteImage(computerVisionClient, landmarkImageURL)
TagRemoteImage(computerVisionClient, landmarkImageURL)
DetectFacesRemoteImage(computerVisionClient, facesImageURL)
DetectObjectsRemoteImage(computerVisionClient, objectsImageURL)
DetectBrandsRemoteImage(computerVisionClient, brandsImageURL)
DetectAdultOrRacyContentRemoteImage(computerVisionClient, adultRacyImageURL)
DetectColorSchemeRemoteImage(computerVisionClient, brandsImageURL)
DetectDomainSpecificContentRemoteImage(computerVisionClient, landmarkImageURL)
DetectImageTypesRemoteImage(computerVisionClient, detectTypeImageURL)
GenerateThumbnailRemoteImage(computerVisionClient, adultRacyImageURL)

Beschrijving van afbeelding ophalenGet image description

De volgende functie haalt de lijst met gegenereerde bijschriften voor de afbeelding op.The following function gets the list of generated captions for the image. Zie afbeeldingen beschrijvenvoor meer informatie over de beschrijving van de installatie kopie.For more information about image description, see Describe images.

func DescribeRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DESCRIBE IMAGE - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    maxNumberDescriptionCandidates := new(int32)
    *maxNumberDescriptionCandidates = 1

    remoteImageDescription, err := client.DescribeImage(
            computerVisionContext,
            remoteImage,
            maxNumberDescriptionCandidates,
            "") // language
        if err != nil { log.Fatal(err) }

    fmt.Println("Captions from remote image: ")
    if len(*remoteImageDescription.Captions) == 0 {
        fmt.Println("No captions detected.")
    } else {
        for _, caption := range *remoteImageDescription.Captions {
            fmt.Printf("'%v' with confidence %.2f%%\n", *caption.Text, *caption.Confidence * 100)
        }
    }
    fmt.Println()
}

Categorie van installatie kopie ophalenGet image category

De volgende functie haalt de gedetecteerde categorie van de installatie kopie op.The following function gets the detected category of the image. Zie afbeeldingen categoriserenvoor meer informatie.For more information, see Categorize images.

func CategorizeRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("CATEGORIZE IMAGE - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    features := []computervision.VisualFeatureTypes{computervision.VisualFeatureTypesCategories}
    imageAnalysis, err := client.AnalyzeImage(
            computerVisionContext,
            remoteImage,
            features,
            []computervision.Details{},
            "")
    if err != nil { log.Fatal(err) }

    fmt.Println("Categories from remote image: ")
    if len(*imageAnalysis.Categories) == 0 {
        fmt.Println("No categories detected.")
    } else {
        for _, category := range *imageAnalysis.Categories {
            fmt.Printf("'%v' with confidence %.2f%%\n", *category.Name, *category.Score * 100)
        }
    }
    fmt.Println()
}

Afbeeldings Tags ophalenGet image tags

De volgende functie haalt de set gedetecteerde labels in de installatie kopie op.The following function gets the set of detected tags in the image. Zie inhouds Tagsvoor meer informatie.For more information, see Content tags.

func TagRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("TAG IMAGE - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    remoteImageTags, err := client.TagImage(
            computerVisionContext,
            remoteImage,
            "")
    if err != nil { log.Fatal(err) }

    fmt.Println("Tags in the remote image: ")
    if len(*remoteImageTags.Tags) == 0 {
        fmt.Println("No tags detected.")
    } else {
        for _, tag := range *remoteImageTags.Tags {
            fmt.Printf("'%v' with confidence %.2f%%\n", *tag.Name, *tag.Confidence * 100)
        }
    }
    fmt.Println()
}

Objecten detecterenDetect objects

Met de volgende functie worden algemene objecten in de installatie kopie gedetecteerd en afgedrukt in de-console.The following function detects common objects in the image and prints them to the console. Zie object detectievoor meer informatie.For more information, see Object detection.

func DetectObjectsRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DETECT OBJECTS - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    imageAnalysis, err := client.DetectObjects(
            computerVisionContext,
            remoteImage,
    )
    if err != nil { log.Fatal(err) }

    fmt.Println("Detecting objects in remote image: ")
    if len(*imageAnalysis.Objects) == 0 {
        fmt.Println("No objects detected.")
    } else {
        // Print the objects found with confidence level and bounding box locations.
        for _, object := range *imageAnalysis.Objects {
            fmt.Printf("'%v' with confidence %.2f%% at location (%v, %v), (%v, %v)\n",
                *object.Object, *object.Confidence * 100,
                *object.Rectangle.X, *object.Rectangle.X + *object.Rectangle.W,
                *object.Rectangle.Y, *object.Rectangle.Y + *object.Rectangle.H)
        }
    }
    fmt.Println()
}

Merken detecterenDetect brands

Met de volgende code worden de bedrijfs merken en-logo's in de installatie kopie gedetecteerd en afgedrukt in de-console.The following code detects corporate brands and logos in the image and prints them to the console. Voor meer informatie, merk detectie.For more information, Brand detection.

Declareer eerst een verwijzing naar een nieuwe installatie kopie binnen uw main functie.First, declare a reference to a new image within your main function.

brandsImageURL := "https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/images/gray-shirt-logo.jpg"

Met de volgende code wordt de merk detectie functie gedefinieerd.The following code defines the brand detection function.

func DetectBrandsRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DETECT BRANDS - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    // Define the kinds of features you want returned.
    features := []computervision.VisualFeatureTypes{computervision.VisualFeatureTypesBrands}

    imageAnalysis, err := client.AnalyzeImage(
        computerVisionContext,
        remoteImage,
        features,
        []computervision.Details{},
        "en")
    if err != nil { log.Fatal(err) }

    fmt.Println("Detecting brands in remote image: ")
    if len(*imageAnalysis.Brands) == 0 {
        fmt.Println("No brands detected.")
    } else {
        // Get bounding box around the brand and confidence level it's correctly identified.
        for _, brand := range *imageAnalysis.Brands {
            fmt.Printf("'%v' with confidence %.2f%% at location (%v, %v), (%v, %v)\n",
                *brand.Name, *brand.Confidence * 100,
                *brand.Rectangle.X, *brand.Rectangle.X + *brand.Rectangle.W,
                *brand.Rectangle.Y, *brand.Rectangle.Y + *brand.Rectangle.H)
        }
    }
    fmt.Println()
}

Gezichten detecterenDetect faces

Met de volgende functie worden de gedetecteerde gezichten in de afbeelding met hun rechthoek coördinaten en bepaalde gezichts kenmerken geretourneerd.The following function returns the detected faces in the image with their rectangle coordinates and certain face attributes. Zie gezichts detectievoor meer informatie.For more information, see Face detection.

func DetectFacesRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DETECT FACES - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    // Define the features you want returned with the API call.
    features := []computervision.VisualFeatureTypes{computervision.VisualFeatureTypesFaces}
    imageAnalysis, err := client.AnalyzeImage(
            computerVisionContext,
            remoteImage,
            features,
            []computervision.Details{},
            "")
        if err != nil { log.Fatal(err) }

    fmt.Println("Detecting faces in a remote image ...")
    if len(*imageAnalysis.Faces) == 0 {
        fmt.Println("No faces detected.")
    } else {
        // Print the bounding box locations of the found faces.
        for _, face := range *imageAnalysis.Faces {
            fmt.Printf("'%v' of age %v at location (%v, %v), (%v, %v)\n",
                face.Gender, *face.Age,
                *face.FaceRectangle.Left, *face.FaceRectangle.Top,
                *face.FaceRectangle.Left + *face.FaceRectangle.Width,
                *face.FaceRectangle.Top + *face.FaceRectangle.Height)
        }
    }
    fmt.Println()
}

Inhoud voor volwassenen, ongepaste of benchmarks detecterenDetect adult, racy, or gory content

Met de volgende functie wordt de gedetecteerde aanwezigheid van inhoud voor volwassenen in de installatie kopie afgedrukt.The following function prints the detected presence of adult content in the image. Zie voor meer informatie volwassene, ongepaste, benchmarks-inhoud.For more information, see Adult, racy, gory content.

func DetectAdultOrRacyContentRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DETECT ADULT OR RACY CONTENT - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    // Define the features you want returned from the API call.
    features := []computervision.VisualFeatureTypes{computervision.VisualFeatureTypesAdult}
    imageAnalysis, err := client.AnalyzeImage(
            computerVisionContext,
            remoteImage,
            features,
            []computervision.Details{},
            "") // language, English is default
    if err != nil { log.Fatal(err) }

    // Print whether or not there is questionable content.
    // Confidence levels: low means content is OK, high means it's not.
    fmt.Println("Analyzing remote image for adult or racy content: ");
    fmt.Printf("Is adult content: %v with confidence %.2f%%\n", *imageAnalysis.Adult.IsAdultContent, *imageAnalysis.Adult.AdultScore * 100)
    fmt.Printf("Has racy content: %v with confidence %.2f%%\n", *imageAnalysis.Adult.IsRacyContent, *imageAnalysis.Adult.RacyScore * 100)
    fmt.Println()
}

Kleuren schema afbeelding ophalenGet image color scheme

Met de volgende functie worden de gedetecteerde kleur kenmerken in de afbeelding afgedrukt, zoals de dominante kleuren en accent kleur.The following function prints the detected color attributes in the image, like the dominant colors and accent color. Zie kleuren schema'svoor meer informatie.For more information, see Color schemes.

func DetectColorSchemeRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DETECT COLOR SCHEME - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    // Define the features you'd like returned with the result.
    features := []computervision.VisualFeatureTypes{computervision.VisualFeatureTypesColor}
    imageAnalysis, err := client.AnalyzeImage(
            computerVisionContext,
            remoteImage,
            features,
            []computervision.Details{},
            "") // language, English is default
    if err != nil { log.Fatal(err) }

    fmt.Println("Color scheme of the remote image: ");
    fmt.Printf("Is black and white: %v\n", *imageAnalysis.Color.IsBWImg)
    fmt.Printf("Accent color: 0x%v\n", *imageAnalysis.Color.AccentColor)
    fmt.Printf("Dominant background color: %v\n", *imageAnalysis.Color.DominantColorBackground)
    fmt.Printf("Dominant foreground color: %v\n", *imageAnalysis.Color.DominantColorForeground)
    fmt.Printf("Dominant colors: %v\n", strings.Join(*imageAnalysis.Color.DominantColors, ", "))
    fmt.Println()
}

Domein-specifieke inhoud ophalenGet domain-specific content

Computer Vision kunt gespecialiseerde modellen gebruiken om verdere analyse van installatie kopieën uit te voeren.Computer Vision can use specialized models to do further analysis on images. Zie Domain-specifieke inhoudvoor meer informatie.For more information, see Domain-specific content.

Met de volgende code worden gegevens over gedetecteerde beroemdheden in de installatie kopie geparseerd.The following code parses data about detected celebrities in the image.

func DetectDomainSpecificContentRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DETECT DOMAIN-SPECIFIC CONTENT - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    fmt.Println("Detecting domain-specific content in the local image ...")

    // Check if there are any celebrities in the image.
    celebrities, err := client.AnalyzeImageByDomain(
            computerVisionContext,
            "celebrities",
            remoteImage,
            "") // language, English is default
    if err != nil { log.Fatal(err) }

    fmt.Println("\nCelebrities: ")

    // Marshal the output from AnalyzeImageByDomain into JSON.
    data, err := json.MarshalIndent(celebrities.Result, "", "\t")

    // Define structs for which to unmarshal the JSON.
    type Celebrities struct {
        Name string `json:"name"`
    }

    type CelebrityResult struct {
        Celebrities	[]Celebrities `json:"celebrities"`
    }

    var celebrityResult CelebrityResult

    // Unmarshal the data.
    err = json.Unmarshal(data, &celebrityResult)
    if err != nil { log.Fatal(err) }

    //	Check if any celebrities detected.
    if len(celebrityResult.Celebrities) == 0 {
        fmt.Println("No celebrities detected.")
    }	else {
        for _, celebrity := range celebrityResult.Celebrities {
            fmt.Printf("name: %v\n", celebrity.Name)
        }
    }

Met de volgende code worden gegevens over gedetecteerde bezienswaardigheden in de installatie kopie geparseerd.The following code parses data about detected landmarks in the image.

    fmt.Println("\nLandmarks: ")

    // Check if there are any landmarks in the image.
    landmarks, err := client.AnalyzeImageByDomain(
            computerVisionContext,
            "landmarks",
            remoteImage,
            "")
    if err != nil { log.Fatal(err) }

    // Marshal the output from AnalyzeImageByDomain into JSON.
    data, err = json.MarshalIndent(landmarks.Result, "", "\t")

    // Define structs for which to unmarshal the JSON.
    type Landmarks struct {
        Name string `json:"name"`
    }

    type LandmarkResult struct {
        Landmarks	[]Landmarks `json:"landmarks"`
    }

    var landmarkResult LandmarkResult

    // Unmarshal the data.
    err = json.Unmarshal(data, &landmarkResult)
    if err != nil { log.Fatal(err) }

    // Check if any celebrities detected.
    if len(landmarkResult.Landmarks) == 0 {
        fmt.Println("No landmarks detected.")
    }	else {
        for _, landmark := range landmarkResult.Landmarks {
            fmt.Printf("name: %v\n", landmark.Name)
        }
    }
    fmt.Println()
}

Het afbeeldings type ophalenGet the image type

De volgende functie drukt informatie over het type afbeelding af — , ongeacht of het een illustratie of lijn tekening is.The following function prints information about the type of image—whether it's clip art or a line drawing.

func DetectImageTypesRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("DETECT IMAGE TYPES - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    features := []computervision.VisualFeatureTypes{computervision.VisualFeatureTypesImageType}

    imageAnalysis, err := client.AnalyzeImage(
            computerVisionContext,
            remoteImage,
            features,
            []computervision.Details{},
            "")
    if err != nil { log.Fatal(err) }

    fmt.Println("Image type of remote image:")

    fmt.Println("\nClip art type: ")
    switch *imageAnalysis.ImageType.ClipArtType {
    case 0:
        fmt.Println("Image is not clip art.")
    case 1:
        fmt.Println("Image is ambiguously clip art.")
    case 2:
        fmt.Println("Image is normal clip art.")
    case 3:
        fmt.Println("Image is good clip art.")
    }

    fmt.Println("\nLine drawing type: ")
    if *imageAnalysis.ImageType.LineDrawingType == 1 {
        fmt.Println("Image is a line drawing.")
    }	else {
        fmt.Println("Image is not a line drawing.")
    }
    fmt.Println()
}

Gedrukte en handgeschreven tekst lezenRead printed and handwritten text

Computer Vision kunt zicht bare tekst in een afbeelding lezen en deze converteren naar een teken stroom.Computer Vision can read visible text in an image and convert it to a character stream. De code in deze sectie definieert een functie, RecognizeTextReadAPIRemoteImage , die het client object gebruikt voor het detecteren en uitpakken van gedrukte of handgeschreven tekst in de afbeelding.The code in this section defines a function, RecognizeTextReadAPIRemoteImage, which uses the client object to detect and extract printed or handwritten text in the image.

Voeg de voorbeeld afbeelding en functie aanroep toe aan de main functie.Add the sample image reference and function call in your main function.

// Analyze text in an image, remote
BatchReadFileRemoteImage(computerVisionClient, printedImageURL)

Notitie

U kunt ook tekst extra heren uit een lokale installatie kopie.You can also extract text from a local image. Zie de voorbeeld code op github voor scenario's met betrekking tot lokale installatie kopieën.See the sample code on GitHub for scenarios involving local images.

De Lees-API aanroepenCall the Read API

Definieer de nieuwe functie voor het lezen van tekst, RecognizeTextReadAPIRemoteImage .Define the new function for reading text, RecognizeTextReadAPIRemoteImage. Voeg de onderstaande code toe, die de BatchReadFile -methode voor de gegeven afbeelding aanroept.Add the code below, which calls the BatchReadFile method for the given image. Deze methode retourneert een bewerkings-ID en start een asynchroon proces om de inhoud van de afbeelding te lezen.This method returns an operation ID and starts an asynchronous process to read the content of the image.

func BatchReadFileRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("BATCH READ FILE - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    // The response contains a field called "Operation-Location", 
    // which is a URL with an ID that you'll use for GetReadOperationResult to access OCR results.
    textHeaders, err := client.BatchReadFile(computerVisionContext, remoteImage)
    if err != nil { log.Fatal(err) }

    // Use ExtractHeader from the autorest library to get the Operation-Location URL
    operationLocation := autorest.ExtractHeaderValue("Operation-Location", textHeaders.Response)

    numberOfCharsInOperationId := 36
    operationId := string(operationLocation[len(operationLocation)-numberOfCharsInOperationId : len(operationLocation)])

Lees resultaten ophalenGet Read results

Vervolgens haalt u de bewerkings-ID op die wordt geretourneerd door de BatchReadFile -aanroep en gebruikt u deze met de methode GetReadOperationResult om de service te doorzoeken op de resultaten van de bewerking.Next, get the operation ID returned from the BatchReadFile call, and use it with the GetReadOperationResult method to query the service for operation results. Met de volgende code wordt de bewerking met een interval van één seconde gecontroleerd totdat de resultaten worden geretourneerd.The following code checks the operation at one-second intervals until the results are returned. Vervolgens worden de geëxtraheerde tekst gegevens afgedrukt naar de-console.It then prints the extracted text data to the console.

readOperationResult, err := client.GetReadOperationResult(computerVisionContext, operationId)
if err != nil { log.Fatal(err) }

// Wait for the operation to complete.
i := 0
maxRetries := 10

fmt.Println("Recognizing text in a remote image with the batch Read API ...")
for readOperationResult.Status != computervision.Failed &&
        readOperationResult.Status != computervision.Succeeded {
    if i >= maxRetries {
        break
    }
    i++

    fmt.Printf("Server status: %v, waiting %v seconds...\n", readOperationResult.Status, i)
    time.Sleep(1 * time.Second)

    readOperationResult, err = client.GetReadOperationResult(computerVisionContext, operationId)
    if err != nil { log.Fatal(err) }
}

Lees resultaten weer gevenDisplay Read results

Voeg de volgende code toe om de opgehaalde tekst gegevens te parseren en weer te geven, en voltooi de functie definitie.Add the following code to parse and display the retrieved text data, and finish the function definition.

// Display the results.
fmt.Println()
for _, recResult := range *(readOperationResult.RecognitionResults) {
    for _, line := range *recResult.Lines {
        fmt.Println(*line.Text)
    }
}

De toepassing uitvoerenRun the application

Voer de toepassing uit vanuit de map van uw toepassing met de go run opdracht.Run the application from your application directory with the go run command.

go run sample-app.go

Resources opschonenClean up resources

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resource groep verwijderen.If you want to clean up and remove a Cognitive Services subscription, you can delete the resource or resource group. Als u de resource groep verwijdert, worden ook alle bijbehorende resources verwijderd.Deleting the resource group also deletes any other resources associated with it.

Volgende stappenNext steps