azure - 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))
解决方案
API 仅返回 202-Accepted(如果您的请求有效)。这包括一个包含 URL的标头Operation-Location 。您向该 URL 发出后续请求以检索请求的状态/结果。
推荐阅读
- php - 使用谷歌日历的 cron 工作
- jquery - JQuery 日期选择器范围
- javascript - 使用 guildMemberAdd 事件的欢迎消息不起作用 | 不和谐.js
- javascript - 如何将变量从我的帖子传递给我的 get?
- javascript - Javascript;它是否有助于 GC 清理无头变量?
- visual-c++ - MSVC 显示内存泄漏,而 VLD 没有
- flutter - 在 dart 中覆盖类变量时出错
- c - 反编译一个 C 函数但得到一个奇怪的代码(参数太多,双重释放)
- javascript - 如何从填充字段中删除密钥?
- java - Jasypt 无法解密:org.jasypt.exceptions.EncryptionOperationNotPossibleException