首页 > 解决方案 > Azure 识别文本返回空结果

问题描述

我使用 OCR API 已经有一段时间了,但我想看看识别文本 API 是否提高了性能。问题是调用识别文本 API 只会返回一个空字符串。

如果我将 API 调用更改为 /vision/v2.0/ocr,那么一切正常。

import http.client, urllib.request, urllib.parse, urllib.error, base64

headers = {
    # Request headers
    'Content-Type': 'application/octet-stream',
    'Ocp-Apim-Subscription-Key': 'MYAPIKEY',
}

params = urllib.parse.urlencode({
    # Request parameters
    'mode': 'Printed',
})


with open(filename, 'rb') as f:
    data_image = f.read()


try:
    conn = http.client.HTTPSConnection('canadacentral.api.cognitive.microsoft.com')
    conn.request("POST", "/vision/v2.0/recognizeText?%s" % params, data_image, headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

标签: azureocr

解决方案


请务必阅读 API 规范:https ://westus.dev.cognitive.microsoft.com/docs/services/5adf991815e1060e6355ad44/operations/587f2c6a154055056008f200

API 仅返回 202-Accepted(如果您的请求有效)。这包括一个包含 URL的标头Operation-Location 。您向该 URL 发出后续请求以检索请求的状态/结果。


推荐阅读