Python 自动化办公教程,10 分钟用 OCR 实现图片文字提取

文摘   2025-01-08 22:59   重庆  

大家好,我是浪仔。在日常工作中,经常会遇到需要从图片中提取文字的情况,传统的手动输入不仅耗时耗力,还容易出错。今天带你用 Python 完成一项自动化办公任务——利用 OCR 技术,10 分钟内将图片中的文字提取出来,轻松解决困扰!


什么是 OCR?

OCR(Optical Character Recognition,光学字符识别)技术通过识别图片中的字符,将其转化为可编辑的文本。Python 中的 Tesseract OCR 是一个广泛使用的 OCR 引擎,它可以帮助你从图片、PDF 中提取文字,简化大量繁琐的工作。

今天,我们将使用 Python 的 pytesseract 库来实现这一功能。

准备工作

在开始之前,你需要安装几个依赖:

  1. 安装 Tesseract
    Tesseract 是 OCR 引擎的核心部分,首先需要在你的系统中安装它。你可以通过以下命令安装:

  • Windows:下载并安装 Tesseract
  • Linux:使用命令 sudo apt install tesseract-ocr 安装。
  • Mac:使用 Homebrew 安装 brew install tesseract
  • 安装 Python 库:

    pip install pytesseract pillow
  • 步骤一:导入所需库

    首先,我们需要导入 pytesseract 和 PIL(Python Imaging Library)库,这样我们才能加载图片并提取其中的文字。

    import pytesseract
    from PIL import Image

    步骤二:加载图片

    使用 PIL 库打开你想提取文字的图片。可以是截图、扫描件、甚至是拍摄的照片。

    # 打开图片
    img = Image.open('sample_image.png')

    步骤三:提取文字

    调用 pytesseract.image_to_string() 函数,将图片中的文字提取为文本。

    # 使用 pytesseract 提取文字
    text = pytesseract.image_to_string(img)

    # 打印提取的文字
    print(text)

    步骤四:优化图片(可选)

    OCR 的准确性与图片的清晰度密切相关,因此在提取文字之前,优化图片的质量会提高识别效果。你可以通过以下方式增强图片:

    1. 灰度化处理:将图片转为灰度图,减少干扰,突出文字。

      img = img.convert('L')  # 转为灰度图
    2. 二值化处理:将图片转为黑白图,进一步提升对比度。

      threshold = 128
      img = img.point(lambda p: p > threshold and 255)
    3. 去噪处理:使用图像处理库(如 OpenCV)去除图片中的噪点,进一步提升识别率。

      import cv2
      import numpy as np

      img = cv2.imread('sample_image.png')
      img = cv2.GaussianBlur(img, (55), 0)  # 去噪

    步骤五:多语言支持(可选)

    如果图片中的文字是中文或其他非英语语言,你可以使用 Tesseract 提供的语言包来进行支持。

    # 提取中文
    text = pytesseract.image_to_string(img, lang='chi_sim')

    提取效果展示

    通过上述代码,你可以轻松提取图片中的文字。假设你提取的文本内容是:

    你好,欢迎来到 Python 自动化办公教程!
    在这个教程中,我们将利用 OCR 技术提取图片中的文字。

    小结

    通过本文介绍的步骤,你可以用 Python 和 OCR 技术,快速实现图片文字提取。这样,不管是从扫描件、截图还是拍摄的照片中提取文字,工作效率都会大大提高。

    在实际应用中,这项技术可以广泛用于处理合同、证件、发票等文字内容,节省大量手动输入的时间,尤其适合办公自动化。赶紧动手试试,让 OCR 帮你提高工作效率!

    陌离姐姐
    坚持日更!人狠话不多,有事我就说
     最新文章