Inicio rápido: Análisis de imágenes remotas mediante la API REST Computer Vision con GoQuickstart: Analyze a remote image using the Computer Vision REST API with Go

En esta guía de inicio rápido, analizará una imagen remota almacenada para extraer características visuales con la API de REST Computer Vision.In this quickstart, you analyze a remotely stored image to extract visual features by using Computer Vision's REST API. Con el método de análisis de imagen, puede extraer características visuales basadas en el contenido de una imagen.With the Analyze Image method, you can extract visual features based on image content.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

Creación y ejecución del ejemploCreate and run the sample

Para crear y ejecutar el ejemplo, siga estos pasos:To create and run the sample, do the following steps:

  1. Copie el código siguiente en un editor de texto.Copy the below code into a text editor.
  2. También puede reemplazar el valor de imageUrl por la dirección URL de una imagen diferente que desee analizar.Optionally, replace the value of imageUrl with the URL of a different image that you want to analyze.
  3. Guarde el código como un archivo con una extensión .go.Save the code as a file with a .go extension. Por ejemplo, analyze-image.go.For example, analyze-image.go.
  4. Abra una ventana de símbolo del sistema.Open a command prompt window.
  5. En el símbolo del sistema, ejecute el comando go build para compilar el paquete desde el archivo.At the prompt, run the go build command to compile the package from the file. Por ejemplo, go build analyze-image.go.For example, go build analyze-image.go.
  6. En el símbolo del sistema, ejecute el paquete compilado.At the prompt, run the compiled package. Por ejemplo, analyze-image.For example, analyze-image.
package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
    "strings"
    "time"
)

func main() {
    // Add your Computer Vision subscription key and endpoint to your environment variables.
    subscriptionKey := os.Getenv("COMPUTER_VISION_SUBSCRIPTION_KEY")
    if (subscriptionKey == "") {
        log.Fatal("\n\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\n" +
            "**Restart your shell or IDE for changes to take effect.**\n")

    endpoint := os.Getenv("COMPUTER_VISION_ENDPOINT")
    if ("" == endpoint) {
        log.Fatal("\n\nSet the COMPUTER_VISION_ENDPOINT environment variable.\n" +
            "**Restart your shell or IDE for changes to take effect.**")
    }
    const uriBase = endpoint + "vision/v2.0/analyze"
    const imageUrl =
        "https://upload.wikimedia.org/wikipedia/commons/3/3c/Shaki_waterfall.jpg"

    const params = "?visualFeatures=Description&details=Landmarks&language=en"
    const uri = uriBase + params
    const imageUrlEnc = "{\"url\":\"" + imageUrl + "\"}"

    reader := strings.NewReader(imageUrlEnc)

    // Create the HTTP client
    client := &http.Client{
        Timeout: time.Second * 2,
    }

    // Create the POST request, passing the image URL in the request body
    req, err := http.NewRequest("POST", uri, reader)
    if err != nil {
        panic(err)
    }

    // Add request headers
    req.Header.Add("Content-Type", "application/json")
    req.Header.Add("Ocp-Apim-Subscription-Key", subscriptionKey)

    // Send the request and retrieve the response
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    // Read the response body
    // Note, data is a byte array
    data, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    // Parse the JSON data from the byte array
    var f interface{}
    json.Unmarshal(data, &f)

    // Format and display the JSON result
    jsonFormatted, _ := json.MarshalIndent(f, "", "  ")
    fmt.Println(string(jsonFormatted))
}

Examen de la respuestaExamine the response

Se devuelve una respuesta correcta en JSON.A successful response is returned in JSON. La aplicación de ejemplo analiza y muestra una respuesta correcta en la ventana del símbolo del sistema, parecida a la del ejemplo siguiente:The sample application parses and displays a successful response in the command prompt window, similar to the following example:

{
  "categories": [
    {
      "detail": {
        "landmarks": []
      },
      "name": "outdoor_water",
      "score": 0.9921875
    }
  ],
  "description": {
    "captions": [
      {
        "confidence": 0.916458423253597,
        "text": "a large waterfall over a rocky cliff"
      }
    ],
    "tags": [
      "nature",
      "water",
      "waterfall",
      "outdoor",
      "rock",
      "mountain",
      "rocky",
      "grass",
      "hill",
      "covered",
      "hillside",
      "standing",
      "side",
      "group",
      "walking",
      "white",
      "man",
      "large",
      "snow",
      "grazing",
      "forest",
      "slope",
      "herd",
      "river",
      "giraffe",
      "field"
    ]
  },
  "metadata": {
    "format": "Jpeg",
    "height": 959,
    "width": 1280
  },
  "requestId": "a92f89ab-51f8-4735-a58d-507da2213fc2"
}

Pasos siguientesNext steps

Explore las versiones de Computer Vision API que se usan para analizar una imagen, detectar celebridades y sitios emblemáticos, crear una miniatura y extraer texto impreso y manuscrito.Explore the Computer Vision API used to analyze an image, detect celebrities and landmarks, create a thumbnail, and extract printed and handwritten text. Para experimentar rápidamente con la versión de Computer Vision API, pruebe la consola de pruebas de Open API.To rapidly experiment with the Computer Vision API, try the Open API testing console.