你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:计算机视觉 v3.2 GA 读取

OCR(读取)版

重要

选择最适合你的要求的读取版本。

输入 示例 读取版本 好处
图像:常规的现实图像 标签、路标和海报 计算机视觉 v4.0 预览版 通过性能增强的同步 API 对常规非文档图像进行优化,可更轻松地在用户体验方案中嵌入 OCR。
文档:数字文档和扫描文档,包括图像 书籍、文章和报表 表单识别器 使用异步 API 对文本密集型扫描文档和数字文档进行优化,有助于大规模地自动执行智能文档处理。

关于计算机视觉 v3.2 GA 读取

正在查找最新的计算机视觉 v3.2 GA 读取? 请注意,未来的所有读取 OCR 增强功能都将属于上面列出的两项新服务。 计算机视觉 v3.2 将不再更新。 若要继续,请参阅计算机视觉 v3.2 GA 读取概述快速入门

开始使用计算机视觉 Read REST API 或客户端库。 读取 API 提供 AI 算法,用于从图像中提取文本,并将其作为结构化字符串返回。 请按照以下步骤将包安装到应用程序中并试用基本任务的示例代码。

使用 OCR 客户端库从远程图像中读取印刷体文本和手写文本。 OCR 服务可以读取图像中的可见文本,并将其转换为字符流。 有关文本识别的更多详细信息,请参阅光学字符识别 (OCR) 概述。 本部分中的代码使用适用于 Read 3.0 的最新计算机视觉 SDK 版本

提示

还可以从本地图像提取文本。 请参阅 ComputerVisionClient 方法,例如 ReadInStreamAsync。 或者,请参阅 GitHub 上的示例代码,了解涉及本地图像的方案。

参考文档 | 库源代码 | 包 (NuGet) | 示例

先决条件

  • Azure 订阅 - 免费创建订阅
  • Visual Studio IDE 或最新版本的 .NET Core
  • 拥有 Azure 订阅后,请在 Azure 门户中创建计算机视觉资源 ,以获取密钥和终结点。 部署后,单击“转到资源”。
    • 需要从创建的资源获取密钥和终结点,以便将应用程序连接到计算机视觉服务。 你稍后会在快速入门中将密钥和终结点粘贴到下方的代码中。
    • 可以使用免费定价层 (F0) 试用该服务,然后再升级到付费层进行生产。

读取印刷体文本和手写文本

  1. 创建一个新的 C# 应用程序。

    使用 Visual Studio 创建新的 .NET Core 应用程序。

    安装客户端库

    创建新项目后,右键单击“解决方案资源管理器”中的项目解决方案,然后选择“管理 NuGet 包”,以安装客户端库 。 在打开的包管理器中,选择“浏览”,选中“包括预发行版”并搜索 Microsoft.Azure.CognitiveServices.Vision.ComputerVision。 选择版本 7.0.0,然后选择“安装”。

  2. 查找密钥和终结点。

    转到 Azure 门户。 如果在“先决条件”部分中创建的计算机视觉资源已成功部署,请单击“后续步骤”下的“转到资源”按钮 。 在资源的“密钥和终结点”页的“资源管理”下可以找到密钥和终结点 。

  3. 在首选的编辑器或 IDE 中,从项目目录打开 Program.cs 文件。 将 Program.cs 的内容替换为以下代码。

    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;
    using System.Threading;
    using System.Linq;
    
    namespace ComputerVisionQuickstart
    {
        class Program
        {
            // Add your Computer Vision subscription key and endpoint
            static string subscriptionKey = "PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE";
            static string endpoint = "PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE";
    
            private const string READ_TEXT_URL_IMAGE = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg";
    
            static void Main(string[] args)
            {
                Console.WriteLine("Azure Cognitive Services Computer Vision - .NET quickstart example");
                Console.WriteLine();
    
                ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);
    
                // Extract text (OCR) from a URL image using the Read API
                ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait();
            }
    
            public static ComputerVisionClient Authenticate(string endpoint, string key)
            {
                ComputerVisionClient client =
                  new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
                  { Endpoint = endpoint };
                return client;
            }
    
            public static async Task ReadFileUrl(ComputerVisionClient client, string urlFile)
            {
                Console.WriteLine("----------------------------------------------------------");
                Console.WriteLine("READ FILE FROM URL");
                Console.WriteLine();
    
                // Read text from URL
                var textHeaders = await client.ReadAsync(urlFile);
                // After the request, get the operation location (operation ID)
                string operationLocation = textHeaders.OperationLocation;
                Thread.Sleep(2000);
    
                // Retrieve the URI where the extracted 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
                ReadOperationResult results;
                Console.WriteLine($"Extracting text from URL file {Path.GetFileName(urlFile)}...");
                Console.WriteLine();
                do
                {
                    results = await client.GetReadResultAsync(Guid.Parse(operationId));
                }
                while ((results.Status == OperationStatusCodes.Running ||
                    results.Status == OperationStatusCodes.NotStarted));
    
                // Display the found text.
                Console.WriteLine();
                var textUrlFileResults = results.AnalyzeResult.ReadResults;
                foreach (ReadResult page in textUrlFileResults)
                {
                    foreach (Line line in page.Lines)
                    {
                        Console.WriteLine(line.Text);
                    }
                }
                Console.WriteLine();
            }
    
        }
    }
    
  4. 将你的密钥和终结点粘贴到代码中的指定位置。 计算机视觉终结点的格式为 https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/

    重要

    完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 对于生产来说,请使用安全的方式存储和访问凭据,例如 Azure Key Vault。 有关详细信息,请参阅认知服务安全性文章。

  5. 作为可选步骤,请参阅如何指定模型版本。 例如,若要显式指定最新版本的 GA 模型,请按如下所示编辑 ReadAsync 调用。 跳过该参数或使用 "latest" 则会自动使用最新版本的 GA 模型。

      // Read text from URL with a specific model version
      var textHeaders = await client.ReadAsync(urlFile,null,null,"2022-04-30");
    
  6. 运行应用。

    单击 IDE 窗口顶部的“调试”按钮。


输出

Azure Cognitive Services Computer Vision - .NET quickstart example

----------------------------------------------------------
READ FILE FROM URL

Extracting text from URL file printed_text.jpg...


Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

清理资源

如果想要清理并删除认知服务订阅,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。

后续步骤

本快速入门了解了安装 OCR 客户端库和使用读取 API 的方法。 接下来,详细了解读取 API 功能。

使用 OCR 客户端库从远程图像中读取印刷体文本和手写文本。 OCR 服务可以读取图像中的可见文本,并将其转换为字符流。 有关文本识别的更多详细信息,请参阅光学字符识别 (OCR) 概述。

提示

还可以从本地图像读取文本。 请参阅 ComputerVisionClientOperationsMixin 方法,如 read_in_stream。 或者,请参阅 GitHub 上的示例代码,了解涉及本地图像的方案。

参考文档 | 库源代码 | 包 (PiPy) | 示例

先决条件

  • Azure 订阅 - 免费创建订阅

  • Python 3.x

    • 你的 Python 安装应包含 pip。 可以通过在命令行上运行 pip --version 来检查是否安装了 pip。 通过安装最新版本的 Python 获取 pip。
  • 拥有 Azure 订阅后,请在 Azure 门户中创建计算机视觉资源,以获取密钥和终结点。 部署后,单击“转到资源”。

    • 需要从创建的资源获取密钥和终结点,以便将应用程序连接到计算机视觉服务。 你稍后会在快速入门中将密钥和终结点粘贴到下方的代码中。
    • 可以使用免费定价层 (F0) 试用该服务,然后再升级到付费层进行生产。

读取印刷体文本和手写文本

  1. 安装客户端库。

    可使用以下方式安装客户端库:

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

    同时,安装 Pillow 库。

    pip install pillow
    
  2. 创建新的 Python 应用程序

    创建新的 Python 文件,例如 quickstart-file.py。 然后在你喜欢的编辑器或 IDE 中打开该文件。

  3. 查找密钥和终结点。

    转到 Azure 门户。 如果在“先决条件”部分中创建的计算机视觉资源已成功部署,请单击“后续步骤”下的“转到资源”按钮 。 在资源的“密钥和终结点”页的“资源管理”下可以找到密钥和终结点 。

  4. 将 quickstart-file.py 的内容替换为以下代码。

    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
    
    '''
    Authenticate
    Authenticates your credentials and creates a client.
    '''
    subscription_key = "PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE"
    endpoint = "PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE"
    
    computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))
    '''
    END - Authenticate
    '''
    
    '''
    OCR: Read File using the Read API, extract text - remote
    This example will extract text in an image, then print results, line by line.
    This API call can also extract handwriting style text (not shown).
    '''
    print("===== Read File - remote =====")
    # Get an image with text
    read_image_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)
    read_response = computervision_client.read(read_image_url,  raw=True)
    
    # Get the operation location (URL with an ID at the end) from the response
    read_operation_location = read_response.headers["Operation-Location"]
    # Grab the ID from the URL
    operation_id = read_operation_location.split("/")[-1]
    
    # Call the "GET" API and wait for it to retrieve the results 
    while True:
        read_result = computervision_client.get_read_result(operation_id)
        if read_result.status not in ['notStarted', 'running']:
            break
        time.sleep(1)
    
    # Print the detected text, line by line
    if read_result.status == OperationStatusCodes.succeeded:
        for text_result in read_result.analyze_result.read_results:
            for line in text_result.lines:
                print(line.text)
                print(line.bounding_box)
    print()
    '''
    END - Read File - remote
    '''
    
    print("End of Computer Vision quickstart.")
    
    
  5. 将你的密钥和终结点粘贴到代码中的指定位置。 计算机视觉终结点的格式为 https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/

    重要

    完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 对于生产来说,请使用安全的方式存储和访问凭据,例如 Azure Key Vault。 有关详细信息,请参阅认知服务安全性文章。

  6. 作为可选步骤,请参阅如何指定模型版本。 例如,若要显式指定最新版本的 GA 模型,请按如下所示编辑 read 语句。 跳过该参数或使用 "latest" 则会自动使用最新版本的 GA 模型。

       # Call API with URL and raw response (allows you to get the operation location)
       read_response = computervision_client.read(read_image_url,  raw=True, model_version="2022-04-30")
    
  7. 在快速入门文件中使用 python 命令运行应用程序。

    python quickstart-file.py
    

输出

===== Read File - remote =====
The quick brown fox jumps
[38.0, 650.0, 2572.0, 699.0, 2570.0, 854.0, 37.0, 815.0]
Over
[184.0, 1053.0, 508.0, 1044.0, 510.0, 1123.0, 184.0, 1128.0]
the lazy dog!
[639.0, 1011.0, 1976.0, 1026.0, 1974.0, 1158.0, 637.0, 1141.0]

End of Computer Vision quickstart.

清理资源

如果想要清理并删除认知服务订阅,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。

后续步骤

本快速入门了解了安装 OCR 客户端库和使用读取 API 的方法。 接下来,详细了解读取 API 功能。

使用光学字符识别客户端库,通过读取 API 来读取印刷体文本和手写文本。 OCR 服务可以读取图像中的可见文本,并将其转换为字符流。 有关文本识别的更多详细信息,请参阅光学字符识别 (OCR) 概述。

提示

还可以从本地图像读取文本。 请参阅 ComputerVisionClient 方法,例如 readInStream。 或者,请参阅 GitHub 上的示例代码,了解涉及本地图像的方案。

参考文档 | 库源代码 | 包 (npm) | 示例

先决条件

  • Azure 订阅 - 免费创建订阅
  • 最新版本的 Node.js
  • 拥有 Azure 订阅后,请在 Azure 门户中创建计算机视觉资源 ,以获取密钥和终结点。 部署后,单击“转到资源”。
    • 需要从创建的资源获取密钥和终结点,以便将应用程序连接到计算机视觉服务。 你稍后会在快速入门中将密钥和终结点粘贴到下方的代码中。
    • 可以使用免费定价层 (F0) 试用该服务,然后再升级到付费层进行生产。

读取印刷体文本和手写文本

  1. 创建新的 Node.js 应用程序。

    在控制台窗口(例如 cmd、PowerShell 或 Bash)中,为应用创建一个新目录并导航到该目录。

    mkdir myapp && cd myapp
    

    运行 npm init 命令以使用 package.json 文件创建一个 node 应用程序。

    npm init
    

    安装客户端库

    安装 ms-rest-azure@azure/cognitiveservices-computervision NPM 包:

    npm install @azure/cognitiveservices-computervision
    

    同时安装异步模块:

    npm install async
    

    应用的 package.json 文件将使用依赖项进行更新。

    创建新文件 index.js,将其在文本编辑器中打开。

  2. 查找密钥和终结点。

    转到 Azure 门户。 如果在“先决条件”部分中创建的计算机视觉资源已成功部署,请单击“后续步骤”下的“转到资源”按钮 。 在资源的“密钥和终结点”页的“资源管理”下可以找到密钥和终结点 。

  3. 将以下代码粘贴到 index.js 文件中。

    'use strict';
    
    const async = require('async');
    const fs = require('fs');
    const https = require('https');
    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;
    /**
     * AUTHENTICATE
     * This single client is used for all examples.
     */
    const key = 'PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE';
    const endpoint = 'PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE';
    
    const computerVisionClient = new ComputerVisionClient(
      new ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': key } }), endpoint);
    /**
     * END - Authenticate
     */
    
    function computerVision() {
      async.series([
        async function () {
    
          /**
           * OCR: READ PRINTED & HANDWRITTEN TEXT WITH THE READ API
           * Extracts text from images using OCR (optical character recognition).
           */
          console.log('-------------------------------------------------');
          console.log('READ PRINTED, HANDWRITTEN TEXT AND PDF');
          console.log();
    
          // URL images containing printed and/or handwritten text. 
          // The URL can point to image files (.jpg/.png/.bmp) or multi-page files (.pdf, .tiff).
          const printedTextSampleURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg';
    
          // Recognize text in printed image from a URL
          console.log('Read printed text from URL...', printedTextSampleURL.split('/').pop());
          const printedResult = await readTextFromURL(computerVisionClient, printedTextSampleURL);
          printRecText(printedResult);
    
          // Perform read and await the result from URL
          async function readTextFromURL(client, url) {
            // To recognize text in a local image, replace client.read() with readTextInStream() as shown:
            let result = await client.read(url);
            // Operation ID is last path segment of operationLocation (a URL)
            let operation = result.operationLocation.split('/').slice(-1)[0];
    
            // Wait for read recognition to complete
            // result.status is initially undefined, since it's the result of read
            while (result.status !== "succeeded") { await sleep(1000); result = await client.getReadResult(operation); }
            return result.analyzeResult.readResults; // Return the first page of result. Replace [0] with the desired page if this is a multi-page file such as .pdf or .tiff.
          }
    
          // Prints all text from Read result
          function printRecText(readResults) {
            console.log('Recognized text:');
            for (const page in readResults) {
              if (readResults.length > 1) {
                console.log(`==== Page: ${page}`);
              }
              const result = readResults[page];
              if (result.lines.length) {
                for (const line of result.lines) {
                  console.log(line.words.map(w => w.text).join(' '));
                }
              }
              else { console.log('No recognized text.'); }
            }
          }
    
          /**
           * 
           * Download the specified file in the URL to the current local folder
           * 
           */
          function downloadFilesToLocal(url, localFileName) {
            return new Promise((resolve, reject) => {
              console.log('--- Downloading file to local directory from: ' + url);
              const request = https.request(url, (res) => {
                if (res.statusCode !== 200) {
                  console.log(`Download sample file failed. Status code: ${res.statusCode}, Message: ${res.statusMessage}`);
                  reject();
                }
                var data = [];
                res.on('data', (chunk) => {
                  data.push(chunk);
                });
                res.on('end', () => {
                  console.log('   ... Downloaded successfully');
                  fs.writeFileSync(localFileName, Buffer.concat(data));
                  resolve();
                });
              });
              request.on('error', function (e) {
                console.log(e.message);
                reject();
              });
              request.end();
            });
          }
    
          /**
           * END - Recognize Printed & Handwritten Text
           */
          console.log();
          console.log('-------------------------------------------------');
          console.log('End of quickstart.');
    
        },
        function () {
          return new Promise((resolve) => {
            resolve();
          })
        }
      ], (err) => {
        throw (err);
      });
    }
    
    computerVision();
    
  4. 将你的密钥和终结点粘贴到上面代码中的指定位置。 计算机视觉终结点的格式为 https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/

    重要

    完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 对于生产来说,请使用安全的方式存储和访问凭据,例如 Azure Key Vault。 有关详细信息,请参阅认知服务安全性文章。

  5. 作为可选步骤,请参阅如何指定模型版本。 例如,若要显式指定最新版本的 GA 模型,请按如下所示编辑 read 语句。 跳过该参数或使用 "latest" 则会自动使用最新版本的 GA 模型。

      let result = await client.read(url,{modelVersion:"2022-04-30"});
    
  6. 在快速入门文件中使用 node 命令运行应用程序。

    node index.js
    

输出

-------------------------------------------------
READ PRINTED, HANDWRITTEN TEXT AND PDF

Read printed text from URL... printed_text.jpg
Recognized text:
Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

-------------------------------------------------
End of quickstart.

清理资源

如果想要清理并删除认知服务订阅,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。

后续步骤

本快速入门了解了安装 OCR 客户端库和使用读取 API 的方法。 接下来,详细了解读取 API 功能。

使用光学字符识别 REST API 读取印刷体文本和手写文本。

注意

此快速入门使用 cURL 命令来调用 REST API。 也可以使用编程语言调用 REST API。 请参阅 GitHub 示例,查看 C#PythonJavaJavaScript 的相关示例。

先决条件

  • Azure 订阅 - 免费创建订阅
  • 拥有 Azure 订阅后,请在 Azure 门户中创建计算机视觉资源 ,以获取密钥和终结点。 部署后,单击“转到资源”。
    • 需要从创建的资源获取密钥和终结点,以便将应用程序连接到计算机视觉服务。 你稍后会在快速入门中将密钥和终结点粘贴到下方的代码中。
    • 可以使用免费定价层 (F0) 试用该服务,然后再升级到付费层进行生产。
  • 已安装 cURL

读取印刷体文本和手写文本

OCR 服务可以提取图像或文档中的可见文本,并将其转换为字符流。 有关文本提取的详细信息,请参阅光学字符识别 (OCR) 概述

调用读取 API

要创建和运行示例,请执行以下步骤:

  1. 将以下命令复制到文本编辑器中。
  2. 必要时在命令中进行如下更改:
    1. <subscriptionKey> 的值替换为你的密钥。
    2. 将请求 URL 的第一部分 (westcentralus) 替换为你自己的终结点 URL 中的文本。

      注意

      2019 年 7 月 1 日之后创建的新资源将使用自定义子域名。 有关详细信息和区域终结点的完整列表,请参阅认知服务的自定义子域名

    3. (可选)将请求正文中的图像 URL (https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\) 更改为要分析的其他图像的 URL。
  3. 打开命令提示符窗口。
  4. 将文本编辑器中的命令粘贴到命令提示符窗口,然后运行命令。
curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{\"url\":\"https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\"}"

响应将包含一个 Operation-Location 标头,其值为唯一的 URL。 使用此 URL 可以查询读取操作的结果。 该 URL 在 48 小时后过期。

(可选)指定模型版本

作为可选步骤,请参阅如何指定模型版本。 例如,若要显式指定最新版本的 GA 模型,请使用 model-version=2022-04-30 作为参数。 跳过该参数或使用 model-version=latest 则会自动使用最新的 GA 模型。

curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze?model-version=2022-04-30" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{\"url\":\"https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\"}"

获取读取结果

  1. 将以下命令复制到文本编辑器中。
  2. 将该 URL 替换为在上一步骤中复制的 Operation-Location 值。
  3. 必要时在命令中进行如下更改:
    1. <subscriptionKey> 的值替换为你的订阅密钥。
  4. 打开命令提示符窗口。
  5. 将文本编辑器中的命令粘贴到命令提示符窗口,然后运行命令。
curl -v -X GET "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyzeResults/{operationId}" -H "Ocp-Apim-Subscription-Key: {subscription key}" --data-ascii "{body}" 

检查响应

成功的响应以 JSON 格式返回。 示例应用程序会在命令提示符窗口中分析和显示成功响应,如下例所示:

{
  "status": "succeeded",
  "createdDateTime": "2021-04-08T21:56:17.6819115+00:00",
  "lastUpdatedDateTime": "2021-04-08T21:56:18.4161316+00:00",
  "analyzeResult": {
    "version": "3.2",
    "readResults": [
      {
        "page": 1,
        "angle": 0,
        "width": 338,
        "height": 479,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              25,
              14,
              318,
              14,
              318,
              59,
              25,
              59
            ],
            "text": "NOTHING",
            "appearance": {
              "style": {
                "name": "other",
                "confidence": 0.971
              }
            },
            "words": [
              {
                "boundingBox": [
                  27,
                  15,
                  294,
                  15,
                  294,
                  60,
                  27,
                  60
                ],
                "text": "NOTHING",
                "confidence": 0.994
              }
            ]
          }
        ]
      }
    ]
  }
}

后续步骤

在本快速入门中,你学习了如何调用读取 REST API。 接下来,详细了解读取 API 功能。

先决条件

  • 使用 Azure 订阅和认知服务资源登录 Vision Studio。 如果你需要有关此步骤的帮助,请参阅概述的入门部分

读取印刷体文本和手写文本

  1. 选择“提取文本”选项卡,然后选择标题为“从图像中提取文本”的面板。
  2. 若要尝试进行体验,需要选择一个资源,并确认它将根据定价层产生使用量。
  3. 从可用集合中选择图像,或上传你自己的图像。
  4. 选择图像后,你将看到提取的文本出现在输出窗口中。 你还可以选择 JSON 选项卡以查看 API 调用返回的 JSON 输出。
  5. 试用体验下方是在你自己的应用程序中开始使用此功能的后续步骤。

后续步骤

在本快速入门中,你使用 Vision Studio 访问读取 API。 接下来,详细了解读取 API 功能。