大家好,我是浪仔。在日常工作中,经常会遇到需要从图片中提取文字的情况,传统的手动输入不仅耗时耗力,还容易出错。今天带你用 Python 完成一项自动化办公任务——利用 OCR 技术,10 分钟内将图片中的文字提取出来,轻松解决困扰!
什么是 OCR?
OCR(Optical Character Recognition,光学字符识别)技术通过识别图片中的字符,将其转化为可编辑的文本。Python 中的 Tesseract OCR 是一个广泛使用的 OCR 引擎,它可以帮助你从图片、PDF 中提取文字,简化大量繁琐的工作。
今天,我们将使用 Python 的 pytesseract 库来实现这一功能。
准备工作
在开始之前,你需要安装几个依赖:
安装 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 的准确性与图片的清晰度密切相关,因此在提取文字之前,优化图片的质量会提高识别效果。你可以通过以下方式增强图片:
灰度化处理:将图片转为灰度图,减少干扰,突出文字。
img = img.convert('L') # 转为灰度图
二值化处理:将图片转为黑白图,进一步提升对比度。
threshold = 128
img = img.point(lambda p: p > threshold and 255)去噪处理:使用图像处理库(如 OpenCV)去除图片中的噪点,进一步提升识别率。
import cv2
import numpy as np
img = cv2.imread('sample_image.png')
img = cv2.GaussianBlur(img, (5, 5), 0) # 去噪
步骤五:多语言支持(可选)
如果图片中的文字是中文或其他非英语语言,你可以使用 Tesseract 提供的语言包来进行支持。
# 提取中文
text = pytesseract.image_to_string(img, lang='chi_sim')
提取效果展示
通过上述代码,你可以轻松提取图片中的文字。假设你提取的文本内容是:
你好,欢迎来到 Python 自动化办公教程!
在这个教程中,我们将利用 OCR 技术提取图片中的文字。
小结
通过本文介绍的步骤,你可以用 Python 和 OCR 技术,快速实现图片文字提取。这样,不管是从扫描件、截图还是拍摄的照片中提取文字,工作效率都会大大提高。
在实际应用中,这项技术可以广泛用于处理合同、证件、发票等文字内容,节省大量手动输入的时间,尤其适合办公自动化。赶紧动手试试,让 OCR 帮你提高工作效率!