栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python:根据图片文字识别批量修改文件名称

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:根据图片文字识别批量修改文件名称

在批量处理图片文件时可能存在如图情况:希望使用图片中人名等特定字符作为文件名取代原文件名。

本文使用Python实现该功能,主要步骤为以下两步:

一、安装Tesseract及PIL

1. 参照此教程安装Tesseract。

pip install pytesseract

2. 安装PIL

pip install Pillow

二、功能实现

from PIL import Image
import pytesseract
from os import listdir

file_name = listdir('E:/ocr/path')    #获取目标目录下所有文件名

for f_name in file_name:
    try:
        f_name = f_name.strip('.jpg')

        im = Image.open(f'E:/ocr/path/{f_name}.jpg')
        text = pytesseract.image_to_string(im, lang='chi_sim')
        subtext = "XXX"     #选择目标文字附近的定位字符

        text = text.replace(" ","")
        name = text[text.rfind(subtext):][4:7]    #获取目标文字

        # 针对2字的人名:删除最后一个字符
        if name[2] == ":" or name[2] == ":":
            name = name[0:2]

        # print(text)
        print(f'{name}{f_name}')

        im.save(f'{name}{f_name}.jpg',"jpeg")    #将图片保存为“目标文字+原文件名”
        im.close()
    except TypeError:    #若OCR识别错误,提示并复制保存原文件
        print(f'OCR ERROR: image {f_name} can not be saved! --IGNORED')
        print('Please save it manually')
        im.save(f'OCR识别错误{f_name}.jpg',"jpeg")
        im.close()
        pass
        continue
    except IndexError:
        print(f'OCR ERROR: image {f_name} can not be saved! --IGNORED')
        print('Please save it manually')
        im.save(f'OCR识别错误{f_name}.jpg',"jpeg")
        im.close()
        pass
        continue

如有错误及不足,恳请批评指正。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017753.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号