下面是使用 Python 进行图片的文字识别的完整攻略。
简介
文字识别(OCR,Optical Character Recognition)是一项将图片中的文字转化为计算机可处理的文本的技术。在信息处理、自动文档分类、数据挖掘等领域都有广泛的应用。目前,OCR 技术已经相当成熟,并且在商用软件中得到了广泛的应用,有很多免费或开源的 OCR 库供大家使用,比如 Tesseract、OCRopus、CuneiForm 等。
Python 作为一种通用的编程语言,其生态系统中有非常丰富的第三方库,其中就包括多个 OCR 库。本文将以 Tesseract 作为示例进行文本识别。
准备工作
- 安装 Tesseract OCR
Tesseract 是一个开源的 OCR 引擎,可以识别多种语言且在大多数情况下都能够较准确地识别出图片中的文字。
在 Windows 上安装 Tesseract,可以通过以下步骤进行:
- 访问 Tesseract OCR 官网下载页面(https://github.com/UB-Mannheim/tesseract/wiki);
- 根据自己的操作系统下载对应版本的 Tesseract OCR;
-
双击文件进行安装,并记住安装路径。
-
安装 Python 的 OCR 库
Python 的 OCR 库有很多,常用的有 pytesseract、pyocr、ocrmypdf 等,本文将使用 pytesseract 作为示例。
要使用 pytesseract,需要安装相关的库。在 Python 中执行以下命令:
!pip install pytesseract pillow
其中 pillow 是 Python 的一个图像处理库,常用于图像格式转换等操作。
识别图片中的文字
以下是一个示例代码,用于实现图片文字识别。在本文中,我们将测试一张古代汉字的图片,看看 Tesseract 能否正确识别出图片中的汉字:
import pytesseract
from PIL import Image
# 打开图片
image = Image.open('ancient_text.png')
# 加载 Tesseract 引擎
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 执行识别操作
text = pytesseract.image_to_string(image, lang='chi_sim')
# 输出识别结果
print(text)
代码中的 pytesseract.image_to_string() 方法用于执行图片文字识别操作,其中 lang 参数指定了 OCR 引擎使用的语言,这里我们指定使用简体中文。如果要识别多种语言,可以输入多个 ISO 639-1 语言代号。
运行上述代码,即可输出图片中的汉字。
批量识别图片中的文字
如果要批量识别一整个文件夹下的图片中的文字,可以使用以下代码:
import os
import pytesseract
from PIL import Image
# 设置 Tesseract 引擎
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 设置要扫描的文件夹
folder = 'images/'
# 遍历文件夹中的图片并识别文字
for file in os.listdir(folder):
image_path = os.path.join(folder, file)
image = Image.open(image_path)
text = pytesseract.image_to_string(image, lang='chi_sim')
print(f'{file}:\n{text}\n')
代码中的 for 循环遍历了文件夹 images/
中的所有图片,并执行了文字识别操作。运行上述代码后,即可输出文件夹中所有图片中的文字。
结论
以上就是使用 Python 进行图片文字识别的完整攻略。通过本文的引导,您可以掌握基本的 OCR 技术,了解如何使用 Python 进行图片文字识别。在实际的应用中,根据需要选择不同的 OCR 引擎和 Python 库,可以提高文字识别的准确率和效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用python进行图片的文字识别详细代码 - Python技术站