Python进行图片信息提取并重命名

 更新时间:2024年10月29日 11:21:32   作者:PythonFun  
Tesseract-OCR是一款优秀的开源OCR软件,本文主要介绍了如何使用Tesseract-OCR工具识别图片并提取信息,感兴趣的小伙伴可以跟随小编一起学习一下

一、问题

有人在微信群问如何快速把一些图片中的第一行或第二行的文字提取出来,并将其重命名。人工操作费时费力,如果用Python就可以实现批量操作,而不必一张一张识别、校对再重命名了。

二、主要思路

Tesseract-OCR是一款优秀的开源OCR软件,目前由Google维护改进,已发展到5.0版本,从4.0版本起增加了基于LSTM神经网络的识别引擎。

本项目的主要思路是用Tesseract-OCR工具来识别图片,虽然这个工具的识别率并不高,但是免费可以使用,亲测效果不错。然后,提取图片中的第一行和第二行的内容为字符串,并将其中不能用于文件名的符号清除掉,再采用os.rename()来重命名。

1. 安装相应的包

要想识别图片,就要安装了 pytesseract 库和PIL库

pip install pytesseract,PIL

2. 下载Tessaract-OCR工具

如果光安装pytesseract库,不安装这个软件也不行,大家可以去下面的地址下载。

https://github.com/UB-Mannheim/tesseract/wiki​github.com/UB-Mannheim/tesseract/wiki

下载和你系统警醒的软件

3. 安装Tesseract

下载到本地后,大约有49M,然后进行安装,注意下载过程中要识别不同的语言,就要勾选相应的语种,如我要识别的是中文,语言那里勾选的是Chinese-Simplified。

安装Tesseract

4. 配置环境

安装完之后,我们还需要找到安装目录下这个Tesseract.exe的路径,把它的路径放到Python里。

pytesseract.pytesseract.tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'

5. 编写代码

万事俱备,就可以编写代码。编写时,需要用到文件管理模块os,正则表达式模块re,图像编辑模块PIL等。

import os
import re
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'
 
def sanitize_filename(name):
    """去除文件名中不允许的字符"""
    return re.sub(r'[<>:"/\\|?*]', '', name)
 
def rename_images_with_first_line_text(folder_path):
    # 获取文件夹中所有的jpg图片
    for filename in os.listdir(folder_path):
        if filename.lower().endswith(".jpg"):
            image_path = os.path.join(folder_path, filename)
            try:
                # 打开图片并使用 pytesseract 识别第一行文字
                image = Image.open(image_path)
                text = pytesseract.image_to_string(image, lang="chi_sim")  # 识别简体中文
                first_line = "".join(text.splitlines()[0:2]).strip()  # 仅取第一行和第二行文字并去除空格
 
                if first_line:
                    # 将文件名设为识别到的第一行文字
                    new_filename = f"{sanitize_filename(first_line)}.jpg"
                    new_path = os.path.join(folder_path, new_filename)
                    os.rename(image_path, new_path)
                    print(f"文件已重命名为: {new_filename}")
                else:
                    print(f"未检测到文字,跳过文件: {filename}")
 
            except Exception as e:
                print(f"处理文件 {filename} 时出错: {e}")
 
# 使用文件夹路径调用函数
folder_path = "."  # 替换为存放JPG图片的文件夹路径
rename_images_with_first_line_text(folder_path)

三、学后总结

1. 采用tesseract来进行图片识别效率还挺高,一秒基本上一张,就是准备率还需要进一步提升。据说还可以进行模型训练,进一步提高其准确率。

2. 后期可以采用百度等大厂的图片识别api进行语片识别,进一步提高准确率。

3. 采用指定模块进行图片识别提供了一个不错的思路,毕竟现在api的调用费也十分高昂。

到此这篇关于Python进行图片信息提取并重命名的文章就介绍到这了,更多相关Python提取图片信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python输出pdf文档的实例

    python输出pdf文档的实例

    今天小编就为大家分享一篇python输出pdf文档的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中的chr()函数与ord()函数解析

    Python中的chr()函数与ord()函数解析

    这篇文章主要介绍了Python中的chr()函数与ord()函数解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python实现视频分解成图片+图片合成视频

    Python实现视频分解成图片+图片合成视频

    这篇文章主要介绍了如何利用Python实现视频分解成图片以及将图片合成为视频,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-04-04
  • 简单的Python抓taobao图片爬虫

    简单的Python抓taobao图片爬虫

    这篇文章主要介绍了简单的Python抓taobao图片爬虫,需要的朋友可以参考下
    2014-10-10
  • Python+Xlwings 删除Excel的行和列

    Python+Xlwings 删除Excel的行和列

    这篇文章主要介绍了Python+Xlwings 删除Excel的行和列的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Python爬虫实现使用beautifulSoup4爬取名言网功能案例

    Python爬虫实现使用beautifulSoup4爬取名言网功能案例

    这篇文章主要介绍了Python爬虫实现使用beautifulSoup4爬取名言网功能,结合实例形式分析了Python基于beautifulSoup4模块爬取名言网并存入MySQL数据库相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • 举例讲解Python面向对象编程中类的继承

    举例讲解Python面向对象编程中类的继承

    类是面向对象语言中的标配,同样类的继承也是体现面向对象的重要特性,这里我们就来举例讲解Python面向对象编程中类的继承,需要的朋友可以参考下
    2016-06-06
  • python使用celery实现订单超时取消

    python使用celery实现订单超时取消

    这篇文章主要为大家详细介绍了python使用celery实现订单超时取消,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • python三方库之requests的快速上手

    python三方库之requests的快速上手

    这篇文章主要介绍了python三方库之requests的快速上手,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 安装python及pycharm的教程图解

    安装python及pycharm的教程图解

    本文通过图文并茂的形式给大家介绍了安装python及pycharm的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10

最新评论