批量识别图片中文字,导出至word中

有时候有些好的文章想复制保存下来,手机页面又有限制,复制不了,于是就只能截图。等保存了一堆截图,我们再通过python批量识别图片中文字保存至word文档里。

这里我们介绍用阿里云识别的方法,识别准确率更高(需要提前申请阿里云图片文字识别的id和密钥),具体代码如下:

import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkocr.request.v20191230.RecognizeCharacterRequest import RecognizeCharacterRequest
from viapi.fileutils import FileUtils
from docx import Document

your_AccessKey_id = 'LTAI5tNJTKu97NsXfwva5sd7'
your_AccessKey_Secret = 'ZSXSTo3RDfF0gnZrdmyKhILyY5GtHJ'
folder_path = r'F:\Python学习\test\图片文字识别\待识别照片'  # 文件夹路径
output_word_path = r'F:\Python学习\test\图片文字识别\文档.docx'  # 输出Word文档路径

# 初始化
file_utils = FileUtils(your_AccessKey_id, your_AccessKey_Secret)
client = AcsClient(your_AccessKey_id, your_AccessKey_Secret, 'cn-shanghai')
doc = Document()  # 创建一个Word文档对象

# 遍历文件夹中的文件
for filename in os.listdir(folder_path):
    if filename.endswith('.jpg') or filename.endswith('.png'):  # 只处理图片文件
        file_path = os.path.join(folder_path, filename)

        # 生成URL
        oss_url = file_utils.get_oss_url(file_path, os.path.splitext(filename)[1][1:], True)

        # OCR设置
        request = RecognizeCharacterRequest()
        request.set_accept_format('json')
        request.set_ImageURL(oss_url)
        request.set_MinHeight(8)
        request.set_OutputProbability(False)

        # OCR
        response = client.do_action_with_exception(request)

        # 解析
        node_list = eval(str(response, 'utf-8'))["Data"]["Results"]

        # 将识别结果添加到Word文档中
        doc.add_heading(filename, level=1)  # 添加文件名作为标题
        for i in node_list:
            doc.add_paragraph(i['Text'])
        doc.add_page_break()  # 添加分页符

# 保存Word文档
doc.save(output_word_path)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值