开发者社区 > 视觉智能 > 文字识别 > 正文

文字识别OCR里python的demo,怎么上传一张图片拿到识别结果啊?

文字识别OCR里python的demo,怎么上传一张图片拿到识别结果啊?

展开
收起
小小鹿鹿鹿 2024-01-10 07:52:55 43 0
3 条回答
写回答
取消 提交回答
  • 文字识别OCR服务通常提供了一种API接口,通过这种接口,开发者可以使用HTTP请求将图片发送到服务器,并接收返回的文字识别结果。在Python中,你可以使用urllib或requests等库来发送HTTP请求,并使用json库来解析返回的结果。

    以下是一个简单的Python demo,展示了如何上传一张图片并获取识别结果:

    import urllib.request
    import urllib.parse
    import json
    import time
    import base64
    
    # 本地图片
    image_path = '改成你的图片存放的路径'  # 例如:'C:\\Users\\xxx\\Pictures\\test.jpg'
    with open(image_path, 'rb') as f:
        # 以二进制读取本地图片
        data = f.read()
        # 对图片进行Base64编码
        encodestr = str(base64.b64encode(data), 'utf-8')
    
    # 请求头信息,包含Authorization和Content-Type
    headers = {
        'Authorization': 'APPCODE 9c68cf90de3941b1b4364bd713c0725e',  # 替换为你的AppCode
        'Content-Type': 'application/json; charset=UTF-8'
    }
    
    # 构建请求参数
    params = {
        'img': encodestr  # 将编码后的图片数据作为img参数发送
    }
    
    # 发送POST请求
    url = 'https://ocrapi-advanced.taobao.com/ocrservice/advance'  # 这里应替换为实际的OCR服务接口地址
    try:
        response = urllib.request.post(url, data=params, headers=headers)
        html = response.read()
        r.close()  # 关闭响应对象
    except urllib.error.HTTPError as e:
        print(e.code)
        print(e.read().decode('utf-8'))
        time.sleep(1)  # 等待一秒后继续
    
    # 解码HTML内容为文本
    result = html.decode('utf-8')
    
    # 打印识别结果
    print('识别的结果:')
    print(result)
    
    # 以下代码用于处理API返回的JSON数据
    # jos = json.loads(html)
    # result = jos['data']
    # print('识别的结果:')
    # print(result)
    

    在上述代码中,你需要将image_path变量指向你要识别的图片文件路径,以及将headers中的Authorization值替换为你自己的AppCode。代码使用了urllib.request库的post方法发送POST请求到指定的OCR服务接口地址,并带上请求头和参数。执行结果将打印出识别出的文字内容。

    请确保已经安装了所需的库,例如urllib和base64,如果尚未安装,可以使用pip install命令来安装。此外,阿里云OCR服务可能需要付费使用,具体费用和限制请咨询阿里云官方文档。

    2024-01-13 11:51:46
    赞同 展开评论 打赏
  • 登录,输入请求参数,即可生成demo,可以直接点击发起调用测试,
    https://next.api.aliyun.com/api/ocr-api/2021-07-07/RecognizeAdvanced?sdkStyle=dara&params={}&lang=JAVA
    ,也可以下载完整工程参照readme运行。
    此回答来自钉群【官方】阿里云OCR公共云客户交流群。

    2024-01-10 14:49:10
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在文字识别OCR中,您可以使用阿里云提供的Python SDK来上传图片并获取识别结果。以下是一个简单的示例代码:

    from aliyunsdkcore.client import AcsClient
    from aliyunsdkocr.request.v20191230 import OcrGeneralRequest
    import json
    
    # 创建AcsClient实例
    client = AcsClient('<accessKeyId>', '<accessSecret>', '<regionId>')
    
    # 创建request对象并设置参数
    request = OcrGeneralRequest.OcrGeneralRequest()
    request.set_accept_format('json')
    request.set_ImageURL("<imageUrl>") # 设置需要识别的图片URL
    request.set_side_effect_type("none") # 设置识别后返回的文本格式为json
    request.set_recognize_granularity("word") # 设置识别粒度为单词级别
    request.set_scene("idcard") # 设置场景为身份证识别
    
    # 发起请求并获取response对象
    response = client.do_action(request)
    
    # 解析response中的JSON数据并输出识别结果
    print(json.loads(response))
    

    在上面的代码中,您需要将<accessKeyId><accessSecret><regionId>替换为您自己的阿里云账号信息,将<imageUrl>替换为您需要识别的图片URL。此外,您还可以根据需要修改其他参数,例如set_side_effect_type用于设置返回的文本格式,set_recognize_granularity用于设置识别粒度,set_scene用于设置场景等。最后,通过调用client.do_action(request)方法发起请求并获取响应对象,然后解析其中的JSON数据即可得到识别结果。

    2024-01-10 14:07:38
    赞同 展开评论 打赏

文字识别技术可以灵活应用于证件文字识别、发票文字识别、文档识别与整理等行业场景,满足认证、鉴权、票据流转审核等业务需求。

相关电子书

更多
阿里云智能-印刷文字识别OCR-产品介绍 立即下载
阿里巴巴读光OCR 立即下载
印刷文字识别算法设计与在线服务 立即下载