Python调用腾讯云OCR实现文字识别+写入Excel(附代码)

目录

  • 专栏导读
  • 背景
  • 1、登录腾讯云+点击【通用文字识别】
    • 网址:[https://console.cloud.tencent.com/](https://console.cloud.tencent.com/)
  • 2、点击-【访问管理】
  • 3、代码测试
  • 结尾

专栏导读

  • 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • ️‍ 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正

  • ❤️ 欢迎各位佬关注! ❤️

背景

  • 由于我是一名抄电表的工作人员,我每天会拍下许多照片,然后回家一张一张把每家每户的用电情况的填写在表格上,但是手抄非常的麻烦且耗时多,我就想利用腾讯云的OCR功能实现自动识别用户的用电

1、登录腾讯云+点击【通用文字识别】

网址:https://console.cloud.tencent.com/

Python调用腾讯云OCR实现文字识别+写入Excel(附代码)_第1张图片

  • 点击开通就好了

Python调用腾讯云OCR实现文字识别+写入Excel(附代码)_第2张图片

2、点击-【访问管理】

Python调用腾讯云OCR实现文字识别+写入Excel(附代码)_第3张图片

  • 点击【新建密钥】

Python调用腾讯云OCR实现文字识别+写入Excel(附代码)_第4张图片

Python调用腾讯云OCR实现文字识别+写入Excel(附代码)_第5张图片

3、代码测试

  • 第一步,先安装SDK

  • pip install tencentcloud-sdk-python

  • 第二步,我先准备几张图片

Python调用腾讯云OCR实现文字识别+写入Excel(附代码)_第6张图片

  • 第三步,准备自己的SecretId、SecretKey

cred = credential.Credential("这里填SecretId", "这里填SecretKey")

#以下代码是将【本地图片】进行文字识别
# -*- coding: utf-8 -*-
# pip install tencentcloud-sdk-python
import os
import re
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.ocr.v20181119 import ocr_client, models
import base64
import json
import jsonpath
import openpyxl
def get_json(image_url):
    try:
        cred = credential.Credential("自己的SecretId", "自己的SecretKey") #密钥
        httpProfile = HttpProfile()
        httpProfile.endpoint = "ocr.tencentcloudapi.com"

        clientProfile = ClientProfile()
        clientProfile.httpProfile = httpProfile
        client = ocr_client.OcrClient(cred, "ap-shanghai", clientProfile)

        req = models.GeneralBasicOCRRequest()
        #对本地图片进行base64转码【本地图片解析需要先转成base64编码】
        with open(image_url, 'rb') as f:
            base64_data = base64.b64encode(f.read())
            s = base64_data.decode()
            ImageBase64_value = 'data:image/jpeg;base64,%s'%s
            #params是字符串,以下进行拼接
            params = '{"ImageBase64":"' + ImageBase64_value + '"}' #以图片Base64编码发送请求
        req.from_json_string(params)

        resp = client.GeneralBasicOCR(req)

        resp = resp.to_json_string()        #不知道为何,此步无法完成数据提取,于是在下面又写了一个解析的方法

        return resp
    except TencentCloudSDKException as err:
        print(err)

def parse_json(resp,im):  #解析
    with open('text.txt','w',encoding='utf-8') as f:  #先写入txt中
        f.write(resp)
    with open('text.txt','r',encoding='utf-8') as f:  #然后再读
        str = f.read()
    str = json.loads(str)                              #json.loads:将JSON字符串解码为 Python 对象;json.dumps:将 Python 对象编码成 JSON 字符串
    DetectedText = jsonpath.jsonpath(str, "$..DetectedText")  #解析:通过找到DetectedText获得对应的值
    data = "-".join(DetectedText)
    # print(data)
    res = re.findall(r'-?\d+', data)
    print("文件名:",im)
    print("提取结果:",res)
    ws.append([im]+res)
    # for i in DetectedText:
    #     print(i)
    # print(len(DetectedText))

if __name__ == '__main__':
    wb = openpyxl.Workbook()
    ws = wb.active
    ws.append(["文件名","写入结果"])
    for im in os.listdir("./图片存放/"):
        resp = get_json("./图片存放/"+im)
        data = parse_json(resp,im)
    wb.save("./结果.xlsx")


Python调用腾讯云OCR实现文字识别+写入Excel(附代码)_第7张图片

结尾

希望对大家有帮助

致力于办公自动化的小小程序员一枚

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识各位佬给个关注吧!

你可能感兴趣的:(OCR图片识别文字,python,腾讯云,ocr,开发语言)