Sample: Exploración de una aplicación de procesamiento de imágenes con C#Sample: Explore an image processing app with C#

Explore una aplicación Windows básica que utiliza Computer Vision para realizar el reconocimiento óptico de caracteres (OCR), crear miniaturas de recorte inteligente, además de detectar, clasificar, etiquetar y describir las características visuales, incluidas las caras, en una imagen.Explore a basic Windows application that uses Computer Vision to perform optical character recognition (OCR), create smart-cropped thumbnails, plus detect, categorize, tag and describe visual features, including faces, in an image. El ejemplo siguiente le permite enviar la dirección URL de una imagen o un archivo almacenado localmente.The below example lets you submit an image URL or a locally stored file. Puede usar este ejemplo de código abierto como plantilla para crear su propia aplicación para Windows con Computer Vision API y Windows Presentation Foundation (WPF), una parte de .NET Framework.You can use this open source example as a template for building your own app for Windows using the Computer Vision API and Windows Presentation Foundation (WPF), a part of .NET Framework.

  • Obtener la aplicación de ejemplo de GitHubGet the sample app from GitHub
  • Abrir y compilar la aplicación de ejemplo en Visual StudioOpen and build the sample app in Visual Studio
  • Ejecutar la aplicación de ejemplo e interactuar con ella para desarrollar diversos escenariosRun the sample app and interact with it to perform various scenarios
  • Explorar los distintos escenarios incluidos con la aplicación de ejemploExplore the various scenarios included with the sample app

Requisitos previosPrerequisites

Antes de explorar la aplicación de ejemplo, asegúrese de haber cumplido los requisitos previos siguientes:Before exploring the sample app, ensure that you've met the following prerequisites:

Obtención de la aplicación de ejemploGet the sample app

La aplicación de ejemplo de Computer Vision está disponible en GitHub desde el repositorio Microsoft/Cognitive-Vision-Windows.The Computer Vision sample app is available on GitHub from the Microsoft/Cognitive-Vision-Windows repository. Este repositorio también incluye el repositorio Microsoft/Cognitive-Common-Windows como submódulo de GIT.This repository also includes the Microsoft/Cognitive-Common-Windows repository as a Git submodule. También puede clonar de forma recursiva este repositorio, incluido el submódulo, ya sea mediante el comando git clone --recurse-submodules desde la línea de comandos, o mediante el escritorio de GitHub.You can recursively clone this repository, including the submodule, either by using the git clone --recurse-submodules command from the command line, or by using GitHub Desktop.

Por ejemplo, para clonar de forma recursiva el repositorio para la aplicación de ejemplo de Computer Vision desde un símbolo del sistema, ejecute el siguiente comando:For example, to recursively clone the repository for the Computer Vision sample app from a command prompt, run the following command:

git clone --recurse-submodules https://github.com/Microsoft/Cognitive-Vision-Windows.git

Importante

No descargue este repositorio como un archivo ZIP.Do not download this repository as a ZIP. GIT no incluye submódulos cuando descarga un repositorio como un archivo ZIP.Git doesn't include submodules when downloading a repository as a ZIP.

Obtener imágenes de ejemplo opcionalesGet optional sample images

Si quiere, puede usar las imágenes de ejemplo incluidas con la aplicación de ejemplo de Face, disponible en GitHub desde el repositorio Microsoft/Cognitive-Face-Windows.You can optionally use the sample images included with the Face sample app, available on GitHub from the Microsoft/Cognitive-Face-Windows repository. Esa aplicación de ejemplo incluye una carpeta, /Data, que contiene varias imágenes de personas.That sample app includes a folder, /Data, which contains multiple images of people. Así mismo, puede clonar de forma recursiva este repositorio mediante los métodos descritos para la aplicación de ejemplo de Computer Vision.You can recursively clone this repository, as well, by the methods described for the Computer Vision sample app.

Por ejemplo, para clonar de forma recursiva el repositorio para la aplicación de ejemplo de Face desde un símbolo del sistema, ejecute el siguiente comando:For example, to recursively clone the repository for the Face sample app from a command prompt, run the following command:

git clone --recurse-submodules https://github.com/Microsoft/Cognitive-Face-Windows.git

Abrir y compilar la aplicación de ejemplo en Visual StudioOpen and build the sample app in Visual Studio

En primer lugar, debe compilar la aplicación de ejemplo para que Visual Studio pueda resolver las dependencias, antes de ejecutar o explorar la aplicación de ejemplo.You must build the sample app first, so that Visual Studio can resolve dependencies, before you can run or explore the sample app. Para abrir y compilar la aplicación de ejemplo, realice los pasos siguientes:To open and build the sample app, do the following steps:

  1. Abra el archivo de solución de Visual Studio, /Sample-WPF/VisionAPI-WPF-Samples.sln, en Visual Studio.Open the Visual Studio solution file, /Sample-WPF/VisionAPI-WPF-Samples.sln, in Visual Studio.

  2. Asegúrese de que la solución de Visual Studio contenga dos proyectos:Ensure that the Visual Studio solution contains two projects:

    • SampleUserControlLibrarySampleUserControlLibrary
    • VisionAPI-WPF-SamplesVisionAPI-WPF-Samples

    Si no está disponible el proyecto SampleUserControlLibrary, confirme que ha clonado de forma recursiva el repositorio Microsoft/Cognitive-Vision-Windows.If the SampleUserControlLibrary project is unavailable, confirm that you've recursively cloned the Microsoft/Cognitive-Vision-Windows repository.

  3. En Visual Studio, presione Control + Mayús + B o elija la opción Compilar en el menú de la cinta de opciones y, a continuación, elija Compilar solución para compilar la solución.In Visual Studio, either press Ctrl+Shift+B or choose Build from the ribbon menu and then choose Build Solution to build the solution.

Ejecutar e interactuar con la aplicación de ejemploRun and interact with the sample app

Puede ejecutar la aplicación de ejemplo para ver cómo interactúa con usted y con la biblioteca cliente de Computer Vision al realizar varias tareas, como generar miniaturas o etiquetar imágenes.You can run the sample app, to see how it interacts with you and with the Computer Vision client library when performing various tasks, such as generating thumbnails or tagging images. Para ejecutar e interactuar con la aplicación de ejemplo, realice los pasos siguientes:To run and interact with the sample app, do the following steps:

  1. Una vez completada la compilación, presione F5 o elija Depurar en el menú de la cinta de opciones y, a continuación, elija Iniciar depuración para ejecutar la aplicación de ejemplo.After the build is complete, either press F5 or choose Debug from the ribbon menu and then choose Start debugging to run the sample app.

  2. Cuando se muestre la aplicación de ejemplo, elija Subscription Key Management (Administración de claves de suscripción) en el panel de navegación para mostrar la página Subscription Key Management (Administración de claves de suscripción).When the sample app is displayed, choose Subscription Key Management from the navigation pane to display the Subscription Key Management page. Página Subscription Key Management (Administración de claves de suscripción)Subscription Key Management page

  3. Escriba la clave de suscripción en Clave de suscripción.Enter your subscription key in Subscription Key.

  4. Escriba la dirección URL del punto de conexión en Punto de conexión.Enter the endpoint URL in Endpoint.
    Por ejemplo, si usa la clave de suscripción de la evaluación gratuita de Computer Vision, escriba la siguiente dirección URL del punto de conexión: https://westcentralus.api.cognitive.microsoft.com > [!NOTE] > Los nuevos recursos creados después del 1 de julio de 2019 usarán nombres de subdominio personalizados.New resources created after July 1, 2019, will use custom subdomain names. Para más información y para obtener una lista completa de los puntos de conexión regionales, consulte Nombres de subdominios personalizados para Cognitive Services.For more information and a complete list of regional endpoints, see Custom subdomain names for Cognitive Services..For example, if you're using the subscription key from the Computer Vision free trial, enter the following endpoint URL: https://westcentralus.api.cognitive.microsoft.com > [!NOTE] > Los nuevos recursos creados después del 1 de julio de 2019 usarán nombres de subdominio personalizados.New resources created after July 1, 2019, will use custom subdomain names. Para más información y para obtener una lista completa de los puntos de conexión regionales, consulte Nombres de subdominios personalizados para Cognitive Services.For more information and a complete list of regional endpoints, see Custom subdomain names for Cognitive Services.

  5. Si no quiere escribir la clave de suscripción y la URL del punto de conexión la próxima vez que ejecute la aplicación de ejemplo, elija Guardar configuración para guardar la clave de suscripción y la URL del punto de conexión en el equipo.If you don't want to enter your subscription key and endpoint URL the next time you run the sample app, choose Save Setting to save the subscription key and endpoint URL to your computer. Si quiere eliminar la dirección URL del punto de conexión y la clave de suscripción que guardó previamente, elija Eliminar configuración.If you want to delete your previously-saved subscription key and endpoint URL, choose Delete Setting.

    Nota

    La aplicación de ejemplo usa el almacenamiento aislado y System.IO.IsolatedStorage para almacenar la dirección URL del punto de conexión y la clave de suscripción.The sample app uses isolated storage, and System.IO.IsolatedStorage, to store your subscription key and endpoint URL.

  6. En la opción Seleccione un escenario del panel de navegación, seleccione uno de los escenarios que actualmente se incluyen con la aplicación de ejemplo:Under Select a scenario in the navigation pane, select one of the scenarios currently included with the sample app:

    EscenarioScenario DESCRIPCIÓNDescription
    Analyze ImageAnalyze Image Usa la operación Analyze Image para analizar una imagen local o remota.Uses the Analyze Image operation to analyze a local or remote image. Puede elegir las características visuales y el idioma para el análisis y ver la imagen y los resultados.You can choose the visual features and language for the analysis, and see both the image and the results.
    Analyze Image with Domain ModelAnalyze Image with Domain Model Usa la operación List Domain Specific Models para enumerar los modelos de dominio entre los que puede elegir, y la operación Recognize Domain Specific Content para analizar una imagen local o remota mediante el modelo de dominio seleccionado.Uses the List Domain Specific Models operation to list the domain models from which you can select, and the Recognize Domain Specific Content operation to analyze a local or remote image using the selected domain model. También puede elegir el idioma para el análisis.You can also choose the language for the analysis.
    Describe ImageDescribe Image Usa la operación Describe Image para crear una descripción legible de una imagen local o remota.Uses the Describe Image operation to create a human-readable description of a local or remote image. También puede elegir el idioma para la descripción.You can also choose the language for the description.
    Generate TagsGenerate Tags Usa la operación Tag Image para etiquetar características visuales de una imagen local o remota.Uses the Tag Image operation to tag the visual features of a local or remote image. También puede elegir el idioma para las etiquetas.You can also choose the language used for the tags.
    Recognize Text (OCR)Recognize Text (OCR) Usa la operación OCR para reconocer y extraer texto impreso de una imagen.Uses the OCR operation to recognize and extract printed text from an image. Puede elegir el idioma que se usará o permitir que Computer Vision lo detecte automáticamente.You can either choose the language to use, or let Computer Vision auto-detect the language.
    Recognize Text V2 (English)Recognize Text V2 (English) Usa las operaciones Recognize Text y Get Recognize Text Operation Result operaciones para reconocer y extraer texto manuscrito o impreso de una imagen de forma asincrónica.Uses the Recognize Text and Get Recognize Text Operation Result operations to asynchronously recognize and extract printed or handwritten text from an image.
    Get ThumbnailGet Thumbnail Usa la operación Get Thumbnail para generar una miniatura de una imagen local o remota.Uses the Get Thumbnail operation to generate a thumbnail for a local or remote image.

    En la captura de pantalla siguiente se muestra la página proporcionada para el escenario Analyze Image, después de analizar una imagen de ejemplo.The following screenshot illustrates the page provided for the Analyze Image scenario, after analyzing a sample image. Captura de pantalla de la página Analizar imagenScreenshot of the Analyze image page

Explorar la aplicación de ejemploExplore the sample app

La solución de Visual Studio para la aplicación de ejemplo de Computer Vision contiene dos proyectos:The Visual Studio solution for the Computer Vision sample app contains two projects:

  • SampleUserControlLibrarySampleUserControlLibrary
    El proyecto SampleUserControlLibrary proporciona funcionalidades compartidas por varios ejemplos de Cognitive Services.The SampleUserControlLibrary project provides functionality shared by multiple Cognitive Services samples. El proyecto contiene lo siguiente:The project contains the following:
    • SampleScenariosSampleScenarios
      Control de usuario que proporciona una presentación estandarizada, como la barra de título, el panel de navegación y el panel de contenido, para obtener ejemplos.A UserControl that provides a standardized presentation, such as the title bar, navigation pane, and content pane, for samples. La aplicación de ejemplo de Computer Vision usa este control en la ventana de MainWindow.xaml para mostrar las páginas del escenario y acceder a la información que se comparte entre los escenarios, como la dirección URL del punto de conexión y la clave de suscripción.The Computer Vision sample app uses this control in the MainWindow.xaml window to display scenario pages and access information shared across scenarios, such as the subscription key and endpoint URL.
    • SubscriptionKeyPageSubscriptionKeyPage
      Página que proporciona un diseño estandarizado para escribir una clave de suscripción y una dirección URL de punto de conexión para la aplicación de ejemplo.A Page that provides a standardized layout for entering a subscription key and endpoint URL for the sample app. La aplicación de ejemplo de Computer Vision usa esta página para administrar la clave de suscripción y la dirección URL de punto de conexión que se usan en las páginas del escenario.The Computer Vision sample app uses this page to manage the subscription key and endpoint URL used by the scenario pages.
    • VideoResultControlVideoResultControl
      Control de usuario que proporciona una presentación estandarizada de la información de vídeo.A UserControl that provides a standardized presentation for video information. La aplicación de ejemplo de Computer Vision no usa este control.The Computer Vision sample app doesn't use this control.
  • VisionAPI-WPF-SamplesVisionAPI-WPF-Samples
    Proyecto principal de la aplicación de ejemplo de Computer Vision que contiene todas las funcionalidades interesantes para Computer Vision.The main project for the Computer Vision sample app, this project contains all of the interesting functionality for Computer Vision. El proyecto contiene lo siguiente:The project contains the following:
    • AnalyzeInDomainPage.xamlAnalyzeInDomainPage.xaml
      Página del escenario Analyze Image con el escenario de modelo de dominio.The scenario page for the Analyze Image with Domain Model scenario.
    • AnalyzeImage.xamlAnalyzeImage.xaml
      Página del escenario Analyze Image.The scenario page for the Analyze Image scenario.
    • DescribePage.xamlDescribePage.xaml
      Página del escenario Describe Image.The scenario page for the Describe Image scenario.
    • ImageScenarioPage.csImageScenarioPage.cs
      Clase ImageScenarioPage, de la que se derivan todas las páginas de escenario de la aplicación de ejemplo.The ImageScenarioPage class, from which all of the scenario pages in the sample app are derived. Esta clase administra funcionalidades, como el suministro de credenciales y el formato de salida, que se comparten en todas las páginas de escenarios.This class manages functionality, such as providing credentials and formatting output, shared by all of the scenario pages.
    • MainWindow.xamlMainWindow.xaml
      Ventana principal de la aplicación de ejemplo. Utiliza el control SampleScenarios para presentar las páginas SubscriptionKeyPage y de escenarios.The main window for the sample app, it uses the SampleScenarios control to present the SubscriptionKeyPage and scenario pages.
    • OCRPage.xamlOCRPage.xaml
      Página del escenario Recognize Text (OCR).The scenario page for the Recognize Text (OCR) scenario.
    • RecognizeLanguage.csRecognizeLanguage.cs
      Clase RecognizeLanguage, que proporciona información acerca de los idiomas que admiten los distintos métodos de la aplicación de ejemplo.The RecognizeLanguage class, which provides information about the languages supported by the various methods in the sample app.
    • TagsPage.xamlTagsPage.xaml
      Página del escenario Generate Tags.The scenario page for the Generate Tags scenario.
    • TextRecognitionPage.xamlTextRecognitionPage.xaml
      Página del escenario Recognize Text V2 (OCR).The scenario page for the Recognize Text V2 (English) scenario.
    • ThumbnailPage.xamlThumbnailPage.xaml
      Página del escenario Get Thumbnail.The scenario page for the Get Thumbnail scenario.

Exploración del código de ejemploExplore the sample code

Las partes importantes del código de ejemplo se enmarcan con los bloques de comentarios que comienzan por KEY SAMPLE CODE STARTS HERE y terminan por KEY SAMPLE CODE ENDS HERE, para que pueda explorar la aplicación de ejemplo con mayor facilidad.Key portions of sample code are framed with comment blocks that start with KEY SAMPLE CODE STARTS HERE and end with KEY SAMPLE CODE ENDS HERE, to make it easier for you to explore the sample app. Estas partes importantes del código de ejemplo contienen el código pertinente para aprender a realizar diversas tareas con la biblioteca cliente de Computer Vision API.These key portions of sample code contain the code most relevant to learning how to use the Computer Vision API client library to do various tasks. Puede buscar KEY SAMPLE CODE STARTS HERE en Visual Studio para moverse entre las secciones de código de la aplicación de ejemplo de Computer Vision más pertinentes.You can search for KEY SAMPLE CODE STARTS HERE in Visual Studio to move between the most relevant sections of code in the Computer Vision sample app.

Por ejemplo, en el método UploadAndAnalyzeImageAsync, que aparece a continuación y se incluye en AnalyzePage.xaml, se muestra cómo usar la biblioteca cliente para analizar una imagen local al invocar el método ComputerVisionClient.AnalyzeImageInStreamAsync.For example, the UploadAndAnalyzeImageAsync method, shown following and included in AnalyzePage.xaml, demonstrates how to use the client library to analyze a local image by invoking the ComputerVisionClient.AnalyzeImageInStreamAsync method.

private async Task<ImageAnalysis> UploadAndAnalyzeImageAsync(string imageFilePath)
{
    // -----------------------------------------------------------------------
    // KEY SAMPLE CODE STARTS HERE
    // -----------------------------------------------------------------------

    //
    // Create Cognitive Services Vision API Service client.
    //
    using (var client = new ComputerVisionClient(Credentials) { Endpoint = Endpoint })
    {
        Log("ComputerVisionClient is created");

        using (Stream imageFileStream = File.OpenRead(imageFilePath))
        {
            //
            // Analyze the image for all visual features.
            //
            Log("Calling ComputerVisionClient.AnalyzeImageInStreamAsync()...");
            VisualFeatureTypes[] visualFeatures = GetSelectedVisualFeatures();
            string language = (_language.SelectedItem as RecognizeLanguage).ShortCode;
            ImageAnalysis analysisResult = await client.AnalyzeImageInStreamAsync(imageFileStream, visualFeatures, null, language);
            return analysisResult;
        }
    }

    // -----------------------------------------------------------------------
    // KEY SAMPLE CODE ENDS HERE
    // -----------------------------------------------------------------------
}

Explorar la biblioteca clienteExplore the client library

Esta aplicación de ejemplo usa la biblioteca cliente de Computer Vision API, un contenedor cliente de C# fino para Computer Vision API en Azure Cognitive Services.This sample app uses the Computer Vision API client library, a thin C# client wrapper for the Computer Vision API in Azure Cognitive Services. La biblioteca cliente está disponible en NuGet en el paquete Microsoft.Azure.CognitiveServices.Vision.ComputerVision.The client library is available from NuGet in the Microsoft.Azure.CognitiveServices.Vision.ComputerVision package. Cuando compiló la aplicación de Visual Studio, recuperó la biblioteca cliente desde el paquete NuGet correspondiente.When you built the Visual Studio application, you retrieved the client library from its corresponding NuGet package. También puede ver el código fuente de la biblioteca cliente en la carpeta /ClientLibrary del repositorio Microsoft/Cognitive-Vision-Windows.You can also view the source code for the client library in the /ClientLibrary folder of the Microsoft/Cognitive-Vision-Windows repository.

La funcionalidad de la biblioteca cliente se centra en la clase ComputerVisionClient, en el espacio de nombres Microsoft.Azure.CognitiveServices.Vision.ComputerVision, mientras que los modelos usados por la clase ComputerVisionClient al interactuar con Computer Vision se encuentran en el espacio de nombres Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models.The client library's functionality centers around the ComputerVisionClient class, in the Microsoft.Azure.CognitiveServices.Vision.ComputerVision namespace, while the models used by the ComputerVisionClient class when interacting with Computer Vision are found in the Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models namespace. En las distintas páginas de escenarios XAML incluidas con la aplicación de ejemplo, encontrará las siguientes directivas using para esos espacios de nombres:In the various XAML scenario pages included with the sample app, you'll find the following using directives for those namespaces:

// -----------------------------------------------------------------------
// KEY SAMPLE CODE STARTS HERE
// Use the following namespace for ComputerVisionClient.
// -----------------------------------------------------------------------
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
// -----------------------------------------------------------------------
// KEY SAMPLE CODE ENDS HERE
// -----------------------------------------------------------------------

Obtendrá más información sobre los distintos métodos que se incluyen con la clase ComputerVisionClient a medida que explore los escenarios incluidos con la aplicación de ejemplo de Computer Vision.You'll learn more about the various methods included with the ComputerVisionClient class as you explore the scenarios included with the Computer Vision sample app.

Explorar el escenario Analyze ImageExplore the Analyze Image scenario

La página AnalyzePage.xaml administra este escenario.This scenario is managed by the AnalyzePage.xaml page. Puede elegir las características visuales y el idioma para el análisis y ver la imagen y los resultados.You can choose the visual features and language for the analysis, and see both the image and the results. Para ello, la página del escenario usa uno de los métodos siguientes, en función del origen de la imagen:The scenario page does this by using one of the following methods, depending on the source of the image:

  • UploadAndAnalyzeImageAsyncUploadAndAnalyzeImageAsync
    Este método se usa para las imágenes locales, en las que la imagen se debe codificar como Stream y enviar a Computer Vision mediante una llamada al método ComputerVisionClient.AnalyzeImageInStreamAsync.This method is used for local images, in which the image must be encoded as a Stream and sent to Computer Vision by calling the ComputerVisionClient.AnalyzeImageInStreamAsync method.
  • AnalyzeUrlAsyncAnalyzeUrlAsync
    Este método se usa para las imágenes remotas, en las que la URL de la imagen se envía a Computer Vision mediante una llamada al método ComputerVisionClient.AnalyzeImageAsync.This method is used for remote images, in which the URL for the image is sent to Computer Vision by calling the ComputerVisionClient.AnalyzeImageAsync method.

El método UploadAndAnalyzeImageAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The UploadAndAnalyzeImageAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Dado que la aplicación de ejemplo analiza una imagen local, debe enviar el contenido de esa imagen a Computer Vision.Because the sample app is analyzing a local image, it has to send the contents of that image to Computer Vision. Abre el archivo local especificado en imageFilePath para la lectura como Stream y, a continuación, obtiene las características visuales y el idioma seleccionado en la página del escenario.It opens the local file specified in imageFilePath for reading as a Stream, then gets the visual features and language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.AnalyzeImageInStreamAsync, en que transfiere Stream para el archivo, las características visuales y el idioma y, a continuación, devuelve el resultado como una instancia ImageAnalysis.It calls the ComputerVisionClient.AnalyzeImageInStreamAsync method, passing the Stream for the file, the visual features, and the language, then returns the result as an ImageAnalysis instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

El método AnalyzeUrlAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The AnalyzeUrlAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Obtiene las características visuales y el idioma seleccionado en la página del escenario.It gets the visual features and language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.AnalyzeImageInStreamAsync, en que transfiere la URL de imagen, las características visuales y el idioma y, a continuación, devuelve el resultado como una instancia ImageAnalysis.It calls the ComputerVisionClient.AnalyzeImageInStreamAsync method, passing the image URL, the visual features, and the language, then returns the result as an ImageAnalysis instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

Explorar Analyze Image con el escenario de modelo de dominio.Explore the Analyze Image with Domain Model scenario

La página AnalyzeInDomainPage.xaml administra este escenario.This scenario is managed by the AnalyzeInDomainPage.xaml page. Puede elegir un modelo de dominio, como celebrities o landmarks, y el idioma para realizar un análisis específico del dominio de la imagen y ver la imagen y los resultados.You can choose a domain model, such as celebrities or landmarks, and language to perform a domain-specific analysis of the image, and see both the image and the results. La página del escenario usa los métodos siguientes, en función del origen de la imagen:The scenario page uses the following methods, depending on the source of the image:

  • GetAvailableDomainModelsAsyncGetAvailableDomainModelsAsync
    Este método obtiene la lista de modelos de dominio disponibles de Computer Vision y rellena el control ComboBox _domainModelComboBox en la página, mediante el método ComputerVisionClient.ListModelsAsync.This method gets the list of available domain models from Computer Vision and populates the _domainModelComboBox ComboBox control on the page, using the ComputerVisionClient.ListModelsAsync method.
  • UploadAndAnalyzeInDomainImageAsyncUploadAndAnalyzeInDomainImageAsync
    Este método se usa para las imágenes locales, en las que la imagen se debe codificar como Stream y enviar a Computer Vision mediante una llamada al método ComputerVisionClient.AnalyzeImageByDomainInStreamAsync.This method is used for local images, in which the image must be encoded as a Stream and sent to Computer Vision by calling the ComputerVisionClient.AnalyzeImageByDomainInStreamAsync method.
  • AnalyzeInDomainUrlAsyncAnalyzeInDomainUrlAsync
    Este método se usa para las imágenes remotas, en las que la URL de la imagen se envía a Computer Vision mediante una llamada al método ComputerVisionClient.AnalyzeImageByDomainAsync.This method is used for remote images, in which the URL for the image is sent to Computer Vision by calling the ComputerVisionClient.AnalyzeImageByDomainAsync method.

El método UploadAndAnalyzeInDomainImageAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The UploadAndAnalyzeInDomainImageAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Dado que la aplicación de ejemplo analiza una imagen local, debe enviar el contenido de esa imagen a Computer Vision.Because the sample app is analyzing a local image, it has to send the contents of that image to Computer Vision. Abre el archivo local especificado en imageFilePath para la lectura como Stream y, a continuación, obtiene el idioma seleccionado en la página del escenario.It opens the local file specified in imageFilePath for reading as a Stream, then gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.AnalyzeImageByDomainInStreamAsync, en que transfiere Stream para el archivo, el nombre del modelo de dominio y el idioma y, a continuación, devuelve el resultado como una instancia DomainModelResults.It calls the ComputerVisionClient.AnalyzeImageByDomainInStreamAsync method, passing the Stream for the file, the name of the domain model, and the language, then returns the result as an DomainModelResults instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

El método AnalyzeInDomainUrlAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The AnalyzeInDomainUrlAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Obtiene el idioma seleccionado en la página del escenario.It gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.AnalyzeImageByDomainAsync, en que transfiere la URL de imagen, las características visuales y el idioma y, a continuación, devuelve el resultado como una instancia DomainModelResults.It calls the ComputerVisionClient.AnalyzeImageByDomainAsync method, passing the image URL, the visual features, and the language, then returns the result as an DomainModelResults instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

Explorar el escenario Describe ImageExplore the Describe Image scenario

La página DescribePage.xaml administra este escenario.This scenario is managed by the DescribePage.xaml page. Puede elegir un idioma para crear una descripción inteligible de la imagen y ver la imagen y los resultados.You can choose a language to create a human-readable description of the image, and see both the image and the results. La página del escenario usa los métodos siguientes, en función del origen de la imagen:The scenario page uses the following methods, depending on the source of the image:

  • UploadAndDescribeImageAsyncUploadAndDescribeImageAsync
    Este método se usa para las imágenes locales, en las que la imagen se debe codificar como Stream y enviar a Computer Vision mediante una llamada al método ComputerVisionClient.DescribeImageInStreamAsync.This method is used for local images, in which the image must be encoded as a Stream and sent to Computer Vision by calling the ComputerVisionClient.DescribeImageInStreamAsync method.
  • DescribeUrlAsyncDescribeUrlAsync
    Este método se usa para las imágenes remotas, en las que la URL de la imagen se envía a Computer Vision mediante una llamada al método ComputerVisionClient.DescribeImageAsync.This method is used for remote images, in which the URL for the image is sent to Computer Vision by calling the ComputerVisionClient.DescribeImageAsync method.

El método UploadAndDescribeImageAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The UploadAndDescribeImageAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Dado que la aplicación de ejemplo analiza una imagen local, debe enviar el contenido de esa imagen a Computer Vision.Because the sample app is analyzing a local image, it has to send the contents of that image to Computer Vision. Abre el archivo local especificado en imageFilePath para la lectura como Stream y, a continuación, obtiene el idioma seleccionado en la página del escenario.It opens the local file specified in imageFilePath for reading as a Stream, then gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.DescribeImageInStreamAsync, en que transfiere Stream para el archivo, el número máximo de candidatos (en este caso, 3) y el idioma y, a continuación, devuelve el resultado como una instancia ImageDescription.It calls the ComputerVisionClient.DescribeImageInStreamAsync method, passing the Stream for the file, the maximum number of candidates (in this case, 3), and the language, then returns the result as an ImageDescription instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

El método DescribeUrlAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The DescribeUrlAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Obtiene el idioma seleccionado en la página del escenario.It gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.DescribeImageAsync, en que transfiere la URL de la imagen, el número máximo de candidatos (en este caso, 3) y el idioma y, a continuación, devuelve el resultado como una instancia ImageDescription.It calls the ComputerVisionClient.DescribeImageAsync method, passing the image URL, the maximum number of candidates (in this case, 3), and the language, then returns the result as an ImageDescription instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

Explorar el escenario Generate TagsExplore the Generate Tags scenario

La página TagsPage.xaml administra este escenario.This scenario is managed by the TagsPage.xaml page. Puede elegir un idioma para etiquetar las características visuales de una imagen y ver la imagen y los resultados.You can choose a language to tag the visual features of an image, and see both the image and the results. La página del escenario usa los métodos siguientes, en función del origen de la imagen:The scenario page uses the following methods, depending on the source of the image:

  • UploadAndGetTagsForImageAsyncUploadAndGetTagsForImageAsync
    Este método se usa para las imágenes locales, en las que la imagen se debe codificar como Stream y enviar a Computer Vision mediante una llamada al método ComputerVisionClient.TagImageInStreamAsync.This method is used for local images, in which the image must be encoded as a Stream and sent to Computer Vision by calling the ComputerVisionClient.TagImageInStreamAsync method.
  • GenerateTagsForUrlAsyncGenerateTagsForUrlAsync
    Este método se usa para las imágenes remotas, en las que la URL de la imagen se envía a Computer Vision mediante una llamada al método ComputerVisionClient.TagImageAsync.This method is used for remote images, in which the URL for the image is sent to Computer Vision by calling the ComputerVisionClient.TagImageAsync method.

El método UploadAndGetTagsForImageAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The UploadAndGetTagsForImageAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Dado que la aplicación de ejemplo analiza una imagen local, debe enviar el contenido de esa imagen a Computer Vision.Because the sample app is analyzing a local image, it has to send the contents of that image to Computer Vision. Abre el archivo local especificado en imageFilePath para la lectura como Stream y, a continuación, obtiene el idioma seleccionado en la página del escenario.It opens the local file specified in imageFilePath for reading as a Stream, then gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.TagImageInStreamAsync, en que transfiere Stream para el archivo y el idioma y, a continuación, devuelve el resultado como una instancia TagResult.It calls the ComputerVisionClient.TagImageInStreamAsync method, passing the Stream for the file and the language, then returns the result as a TagResult instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

El método GenerateTagsForUrlAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The GenerateTagsForUrlAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Obtiene el idioma seleccionado en la página del escenario.It gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.TagImageAsync, en que transfiere la URL de la imagen y el idioma y, a continuación, devuelve el resultado como una instancia TagResult.It calls the ComputerVisionClient.TagImageAsync method, passing the image URL and the language, then returns the result as a TagResult instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

Explorar el escenario Recognize Text (OCR)Explore the Recognize Text (OCR) scenario

La página OCRPage.xaml administra este escenario.This scenario is managed by the OCRPage.xaml page. Puede elegir un idioma para reconocer y extraer texto impreso de una imagen y ver la imagen y los resultados.You can choose a language to recognize and extract printed text from an image, and see both the image and the results. La página del escenario usa los métodos siguientes, en función del origen de la imagen:The scenario page uses the following methods, depending on the source of the image:

  • UploadAndRecognizeImageAsyncUploadAndRecognizeImageAsync
    Este método se usa para las imágenes locales, en las que la imagen se debe codificar como Stream y enviar a Computer Vision mediante una llamada al método ComputerVisionClient.RecognizePrintedTextInStreamAsync.This method is used for local images, in which the image must be encoded as a Stream and sent to Computer Vision by calling the ComputerVisionClient.RecognizePrintedTextInStreamAsync method.
  • RecognizeUrlAsyncRecognizeUrlAsync
    Este método se usa para las imágenes remotas, en las que la URL de la imagen se envía a Computer Vision mediante una llamada al método ComputerVisionClient.RecognizePrintedTextAsync.This method is used for remote images, in which the URL for the image is sent to Computer Vision by calling the ComputerVisionClient.RecognizePrintedTextAsync method.

El método UploadAndRecognizeImageAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The UploadAndRecognizeImageAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Dado que la aplicación de ejemplo analiza una imagen local, debe enviar el contenido de esa imagen a Computer Vision.Because the sample app is analyzing a local image, it has to send the contents of that image to Computer Vision. Abre el archivo local especificado en imageFilePath para la lectura como Stream y, a continuación, obtiene el idioma seleccionado en la página del escenario.It opens the local file specified in imageFilePath for reading as a Stream, then gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.RecognizePrintedTextInStreamAsync, en que indica que la orientación no se detectó y transfiere Stream para el archivo y el idioma y, a continuación, devuelve el resultado como una instancia OcrResult.It calls the ComputerVisionClient.RecognizePrintedTextInStreamAsync method, indicating that orientation is not detected and passing the Stream for the file and the language, then returns the result as an OcrResult instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

El método RecognizeUrlAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The RecognizeUrlAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Obtiene el idioma seleccionado en la página del escenario.It gets the language selected in the scenario page. Realiza una llamada al método ComputerVisionClient.RecognizePrintedTextAsync, en que indica que la orientación no se detectó y transfiere la URL de la imagen y el idioma y, a continuación, devuelve el resultado como una instancia OcrResult.It calls the ComputerVisionClient.RecognizePrintedTextAsync method, indicating that orientation is not detected and passing the image URL and the language, then returns the result as an OcrResult instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

Explorar el escenario Recognize Text V2 (English)Explore the Recognize Text V2 (English) scenario

La página TextRecognitionPage.xaml administra este escenario.This scenario is managed by the TextRecognitionPage.xaml page. Puede elegir el modo de reconocimiento y un idioma para reconocer y extraer texto manuscrito o impreso de una imagen de forma asincrónica y ver la imagen y los resultados.You can choose the recognition mode and a language to asynchronously recognize and extract either printed or handwritten text from an image, and see both the image and the results. La página del escenario usa los métodos siguientes, en función del origen de la imagen:The scenario page uses the following methods, depending on the source of the image:

  • UploadAndRecognizeImageAsyncUploadAndRecognizeImageAsync
    Este método se usa para las imágenes locales, en las que la imagen se debe codificar como Stream y enviar a Computer Vision mediante una llamada al método RecognizeAsync y la transferencia de un delegado parametrizado para el método ComputerVisionClient.RecognizeTextInStreamAsync.This method is used for local images, in which the image must be encoded as a Stream and sent to Computer Vision by calling the RecognizeAsync method and passing a parameterized delegate for the ComputerVisionClient.RecognizeTextInStreamAsync method.
  • RecognizeUrlAsyncRecognizeUrlAsync
    Este método se usa para las imágenes remotas, en las que la URL de la imagen se envía a Computer Vision mediante una llamada al método RecognizeAsync y la transferencia de un delegado parametrizado para el método ComputerVisionClient.RecognizeTextAsync.This method is used for remote images, in which the URL for the image is sent to Computer Vision by calling the RecognizeAsync method and passing a parameterized delegate for the ComputerVisionClient.RecognizeTextAsync method.
  • RecognizeAsync Este método administra la llamada asincrónica para los métodos UploadAndRecognizeImageAsync y RecognizeUrlAsync, así como el sondeo de resultados mediante una llamada al método ComputerVisionClient.GetTextOperationResultAsync.RecognizeAsync This method handles the asynchronous calling for both the UploadAndRecognizeImageAsync and RecognizeUrlAsync methods, as well as polling for results by calling the ComputerVisionClient.GetTextOperationResultAsync method.

A diferencia de los otros escenarios incluidos en la aplicación de ejemplo de Computer Vision, este escenario es asincrónico, ya que se llama a un método para iniciar el proceso, pero se llama a otro método para comprobar el estado y devolver los resultados de ese proceso.Unlike the other scenarios included in the Computer Vision sample app, this scenario is asynchronous, in that one method is called to start the process, but a different method is called to check on the status and return the results of that process. El flujo lógico de este escenario es un poco distinto del de los otros escenarios.The logical flow in this scenario is somewhat different from that in the other scenarios.

El método UploadAndRecognizeImageAsync abre el archivo local especificado en imageFilePath para la lectura como Stream y, a continuación, realiza una llamada al método RecognizeAsync, en que transfiere:The UploadAndRecognizeImageAsync method opens the local file specified in imageFilePath for reading as a Stream, then calls the RecognizeAsync method, passing:

  • Una expresión lambda para un delegado asincrónico parametrizado del método ComputerVisionClient.RecognizeTextInStreamAsync, con el elemento Stream para el archivo y el modo de reconocimiento como parámetros, en GetHeadersAsyncFunc.A lambda expression for a parameterized asynchronous delegate of the ComputerVisionClient.RecognizeTextInStreamAsync method, with the Stream for the file and the recognition mode as parameters, in GetHeadersAsyncFunc.
  • Una expresión lambda para un delegado para obtener el valor de encabezado de respuesta Operation-Location, en GetOperationUrlFunc.A lambda expression for a delegate to get the Operation-Location response header value, in GetOperationUrlFunc.

El método RecognizeUrlAsync realiza una llamada al método RecognizeAsync, en que transfiere:The RecognizeUrlAsync method calls the RecognizeAsync method, passing:

  • Una expresión lambda para un delegado asincrónico parametrizado del método ComputerVisionClient.RecognizeTextAsync, con la URL de la imagen remota y el modo de reconocimiento como parámetros, en GetHeadersAsyncFunc.A lambda expression for a parameterized asynchronous delegate of the ComputerVisionClient.RecognizeTextAsync method, with the URL of the remote image and the recognition mode as parameters, in GetHeadersAsyncFunc.
  • Una expresión lambda para un delegado para obtener el valor de encabezado de respuesta Operation-Location, en GetOperationUrlFunc.A lambda expression for a delegate to get the Operation-Location response header value, in GetOperationUrlFunc.

Cuando el método RecognizeAsync se completa, los métodos UploadAndRecognizeImageAsync y RecognizeUrlAsync devuelven el resultado como una instancia de TextOperationResult.When the RecognizeAsync method is completed, both UploadAndRecognizeImageAsync and RecognizeUrlAsync methods return the result as a TextOperationResult instance. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

El método RecognizeAsync realiza una llamada al delegado parametrizado para el método ComputerVisionClient.RecognizeTextInStreamAsync o ComputerVisionClient.RecognizeTextAsync transferido en GetHeadersAsyncFunc y espera la respuesta.The RecognizeAsync method calls the parameterized delegate for either the ComputerVisionClient.RecognizeTextInStreamAsync or ComputerVisionClient.RecognizeTextAsync method passed in GetHeadersAsyncFunc and waits for the response. A continuación, el método llama al delegado transferido en GetOperationUrlFunc para obtener el valor del encabezado de respuesta Operation-Location de la respuesta.The method then calls the delegate passed in GetOperationUrlFunc to get the Operation-Location response header value from the response. Este valor es la dirección URL utilizada para recuperar los resultados del método transferido en GetHeadersAsyncFunc de Computer Vision.This value is the URL used to retrieve the results of the method passed in GetHeadersAsyncFunc from Computer Vision.

A continuación, el método RecognizeAsync realiza una llamada al método ComputerVisionClient.GetTextOperationResultAsync, en que transfiere la URL recuperada del encabezado de respuesta Operation-Location, a fin de obtener el estado y el resultado del método transferido en GetHeadersAsyncFunc.The RecognizeAsync method then calls the ComputerVisionClient.GetTextOperationResultAsync method, passing the URL retrieved from the Operation-Location response header, to get the status and result of the method passed in GetHeadersAsyncFunc. Si el estado no indica que el método se completó, de manera correcta o incorrecta, el método RecognizeAsync realiza una llamada a ComputerVisionClient.GetTextOperationResultAsync 3 veces más, con un tiempo de espera de 3 segundos entre las llamadas.If the status doesn't indicate that the method completed, successfully or unsuccessfully, the RecognizeAsync method calls ComputerVisionClient.GetTextOperationResultAsync 3 more times, waiting 3 seconds between calls. El método RecognizeAsync devuelve los resultados al método que lo llamó.The RecognizeAsync method returns the results to the method that called it.

Explorar el escenario Get ThumbnailExplore the Get Thumbnail scenario

La página ThumbnailPage.xaml administra este escenario.This scenario is managed by the ThumbnailPage.xaml page. Puede indicar si quiere usar el recorte inteligente, especificar la altura y la anchura que quiera a fin de generar una miniatura de una imagen y ver la imagen y los resultados.You can indicate whether to use smart cropping, and specify desired height and width, to generate a thumbnail from an image, and see both the image and the results. La página del escenario usa los métodos siguientes, en función del origen de la imagen:The scenario page uses the following methods, depending on the source of the image:

  • UploadAndThumbnailImageAsyncUploadAndThumbnailImageAsync
    Este método se usa para las imágenes locales, en las que la imagen se debe codificar como Stream y enviar a Computer Vision mediante una llamada al método ComputerVisionClient.GenerateThumbnailInStreamAsync.This method is used for local images, in which the image must be encoded as a Stream and sent to Computer Vision by calling the ComputerVisionClient.GenerateThumbnailInStreamAsync method.
  • ThumbnailUrlAsyncThumbnailUrlAsync
    Este método se usa para las imágenes remotas, en las que la URL de la imagen se envía a Computer Vision mediante una llamada al método ComputerVisionClient.GenerateThumbnailAsync.This method is used for remote images, in which the URL for the image is sent to Computer Vision by calling the ComputerVisionClient.GenerateThumbnailAsync method.

El método UploadAndThumbnailImageAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The UploadAndThumbnailImageAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Dado que la aplicación de ejemplo analiza una imagen local, debe enviar el contenido de esa imagen a Computer Vision.Because the sample app is analyzing a local image, it has to send the contents of that image to Computer Vision. Abre el archivo local especificado en imageFilePath para la lectura como Stream.It opens the local file specified in imageFilePath for reading as a Stream. Realiza una llamada al método ComputerVisionClient.GenerateThumbnailInStreamAsync, en que se transfiere la anchura, la altura, el elemento Stream para el archivo y si se utiliza el recorte inteligente y, a continuación, devuelve el resultado como Stream.It calls the ComputerVisionClient.GenerateThumbnailInStreamAsync method, passing the width, height, the Stream for the file, and whether to use smart cropping, then returns the result as a Stream. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

El método RecognizeUrlAsync crea una nueva instancia de ComputerVisionClient mediante la dirección URL del punto de conexión y la clave de suscripción especificadas.The RecognizeUrlAsync method creates a new ComputerVisionClient instance, using the specified subscription key and endpoint URL. Realiza una llamada al método ComputerVisionClient.GenerateThumbnailAsync, en que se transfiere la anchura, la altura, la URL de la imagen y si se utiliza el recorte inteligente y, a continuación, devuelve el resultado como Stream.It calls the ComputerVisionClient.GenerateThumbnailAsync method, passing the width, height, the URL for the image, and whether to use smart cropping, then returns the result as a Stream. Los métodos heredados de la clase ImageScenarioPage presentan los resultados devueltos en la página del escenario.The methods inherited from the ImageScenarioPage class present the returned results in the scenario page.

Limpieza de recursosClean up resources

Cuando ya no necesite la carpeta en que ha clonado el repositorio Microsoft/Cognitive-Vision-Windows, elimínela.When no longer needed, delete the folder into which you cloned the Microsoft/Cognitive-Vision-Windows repository. Si optó por usar las imágenes de ejemplo, elimine también la carpeta en la que clonó el repositorio Microsoft/Cognitive-Face-Windows.If you opted to use the sample images, also delete the folder into which you cloned the Microsoft/Cognitive-Face-Windows repository.

Pasos siguientesNext steps