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提取图片信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于numpy实现逻辑回归

    基于numpy实现逻辑回归

    这篇文章主要为大家详细介绍了基于numpy实现逻辑回归,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Python可变默认参数陷阱案例和解决方案

    Python可变默认参数陷阱案例和解决方案

    在Python开发中,函数参数的默认值是一个既方便又危险的特性,它允许我们为参数提供预设值,简化函数调用,但在使用可变对象作为默认参数时,却隐藏着令人困惑的陷阱,本文将通过深入解析Python函数参数的底层机制,揭示可变默认参数的陷阱本质,需要的朋友可以参考下
    2025-12-12
  • Python的Flask框架及Nginx实现静态文件访问限制功能

    Python的Flask框架及Nginx实现静态文件访问限制功能

    这篇文章主要介绍了Python的Flask框架及Nginx实现静态文件访问限制功能,Nginx方面利用到了自带的XSendfile,需要的朋友可以参考下
    2016-06-06
  • GPU版本安装Pytorch的最新方法步骤

    GPU版本安装Pytorch的最新方法步骤

    最近深度学习需要用GPU版本的pytorch来加速运算,所以下面这篇文章主要给大家介绍了关于GPU版本安装Pytorch的最新方法步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • 使用Python进行图像批处理的方法示例

    使用Python进行图像批处理的方法示例

    在Python中进行图像批处理可以使用多种库,如 Pillow、OpenCV 和 imageio,这些库可以用来执行各种图像处理任务,如调整大小、裁剪、旋转、滤镜应用等,以下是使用这些库进行图像批处理的示例,需要的朋友可以参考下
    2024-09-09
  • python实现趣味图片字符化

    python实现趣味图片字符化

    这篇文章主要为大家详细介绍了python实现趣味图片字符化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • 玩转python爬虫之正则表达式

    玩转python爬虫之正则表达式

    这篇文章主要介绍了python爬虫的正则表达式,正则表达式在Python爬虫是必不可少的神兵利器,本文整理了Python中的正则表达式的相关内容,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Python连接Spark的7种方法大全

    Python连接Spark的7种方法大全

    Apache Spark 是一个强大的分布式计算框架,广泛用于大规模数据处理,通过 PySpark,Python 开发者能够无缝接入 Spark 生态系统,本文给大家介绍了Python连接Spark的7种方法,从入门到生产级部署,需要的朋友可以参考下
    2025-11-11
  • Python版微信红包分配算法

    Python版微信红包分配算法

    微信红包告诉你,学好数学,真的可以多抢红包!!下面就和大家分享一下抢红包的秘籍,简单概括就是:让朋友先上!
    2015-05-05
  • python调用pyaudio使用麦克风录制wav声音文件的教程

    python调用pyaudio使用麦克风录制wav声音文件的教程

    这篇文章主要介绍了python调用pyaudio使用麦克风录制wav声音文件的教程,详细的给大家介绍了pyaudio库的安装与使用,需要的朋友可以参考下
    2019-06-06

最新评论