Python OCR图片识别代码示例:Tesseract 的安装及pytesseract提取图片文本内容

安装Tesseract

Tesseract是一个开源的OCR引擎,可以非常高效地将图片中的文本转换为可编辑的文本格式。为了在Python中使用pytesseract库,你需要先在你的系统上安装Tesseract OCR。

安装Tesseract OCR步骤:

  1. 下载Tesseract OCR
    访问Tesseract OCR的GitHub Release页面或直接访问其官方网站,下载适合你操作系统的安装包。对于Windows用户,通常可以选择一个.exe安装文件。

或者访问如下网址进行下载:
https://digi.bib.uni-mannheim.de/tesseract/

  1. 安装
    双击下载的安装包并按照提示进行安装。默认情况下,它可能会安装到类似C:\Program Files\Tesseract-OCR的路径下。

  2. 配置环境变量(可选但推荐):
    为了在任何路径下都能方便地调用tesseract.exe,你需要将Tesseract的安装路径添加到系统的PATH环境变量中。这可以通过以下步骤完成:

    • 右键点击“此电脑”或“我的电脑”,选择“属性”。
    • 点击“高级系统设置”。
    • 在“系统属性”窗口中点击“环境变量”按钮。
    • 在“系统变量”区域找到并选择“Path”,然后点击“编辑”。
    • 点击“新建”,然后输入Tesseract的安装路径,通常是C:\Program Files\Tesseract-OCR
  3. 验证安装
    打开命令提示符或PowerShell,输入tesseract --version,如果安装成功,它会显示Tesseract的版本信息。

代码示例

使用Python语言,结合Pillow库和pytesseract库,识别图片mdf.png中的所有文本,并将每行文本存储在一个字典(Map)中,其中键可以是行号或一个自增的计数器,值为该行的文本内容。以下是相应的代码示例:

首先,确保你已经安装了必要的库,如前所述,通过运行:

pip install pillow pytesseract

接着,使用以下Python脚本:

from PIL import Image
import pytesseract
import re

def ocr_image_to_map(image_path):
    """
    识别图片中的所有文本,并将每行文本存储到一个字典中。
    """
    # 设置tesseract的路径(如果尚未在环境变量中配置)
    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'  # 根据你的安装位置调整

    # 打开图片
    img = Image.open(image_path)

    # 使用pytesseract进行OCR识别,同时获取文字框信息以便按行分割
    hocr_text = pytesseract.image_to_data(img, output_type=pytesseract.Output.HOCR)

    # 解析HOCR输出,提取每一行文本及其位置信息
    lines = {}
    line_pattern = re.compile(r'<span.*?id="line_(\d+).*?>(.*?)</span>', re.DOTALL)
    matches = line_pattern.findall(hocr_text)

    for line_number, line_text in matches:
        # 清理文本,去除多余空白和特殊字符
        clean_line_text = re.sub(r'\s+', ' ', line_text).strip()
        lines[int(line_number)] = clean_line_text

    return lines

if __name__ == "__main__":
    image_path = 'mdf.png'  # 假设图片与脚本位于同一目录下
    all_text_lines = ocr_image_to_map(image_path)
    for line_num, text in all_text_lines.items():
        print(f"Line {line_num}: {text}")

这段代码首先尝试读取当前路径下的mdf.png图片,然后利用pytesseract.image_to_data方法进行OCR识别,并请求HOCR(HTML Output for OCR)格式的输出。HOCR格式不仅提供了识别出的文字,还包括了它们在图片上的位置信息,这对于按行分割文本特别有用。之后,脚本使用正则表达式解析HOCR输出,提取每一行文本,并存储在一个字典中,其中键是自动递增的行号,值为该行的文本内容。最后,打印出每行的编号和对应文本。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python 中,你可以使用 OCR 技术从图片提取文字。OCR 是 Optical Character Recognition 的缩写,即光学字符识别Python 中有许多 OCR 库可以使用,其中最常用的是 Tesseract。 以下是一些使用 PythonTesseract 进行 OCR 的步骤: 1. 安装 Tesseract安装 Tesseract 之前,你需要安装一些依赖项。这些依赖项在不同的操作系统上可能不同。在 Ubuntu 中,你可以使用以下命令安装它们: ``` sudo apt install tesseract-ocr libtesseract-dev libleptonica-dev ``` 在 Windows 中,你可以从 Tesseract 的官方网站下载安装程序:https://github.com/UB-Mannheim/tesseract/wiki 2. 安装 pytesseractpytesseract 是一个 Python 模块,它提供了与 Tesseract 的接口,以便在 Python 中使用它。你可以使用以下命令安装: ``` pip install pytesseract ``` 3. 从图片提取文字 下面是一个简单的 Python 代码示例,它使用 pytesseract 库从图片提取文本: ```python import pytesseract from PIL import Image # 打开图片 img = Image.open('image.png') # 使用 pytesseract 识别文本 text = pytesseract.image_to_string(img, lang='eng') print(text) ``` 在这个示例中,'image.png' 是要识别图片的文件名。`image_to_string()` 函数将图片作为输入,并返回从图片提取文本。lang 参数指定要使用的语言。在这里,我们使用了英语。你可以根据需要更改它。 这就是使用 Python图片提取文本的基本步骤。当然,这只是一个简单的示例。在实际应用中,你可能需要进行更多的图像处理和文本清理,以获得更准确的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值