简介:本文将介绍如何使用Python结合OCR(光学字符识别)技术和Pandas库,实现批量识别图片中的文字,并将结果整理存储到Excel文件中。无需复杂设置,几行代码即可搞定。
在日常工作和学习中,我们经常会遇到需要从图片中提取文字的场景,比如扫描件、截图等。手动输入不仅效率低下,还容易出错。幸运的是,Python提供了强大的库来帮助我们自动化这一过程。本文将指导你如何使用Python的pytesseract(一个Tesseract-OCR的Python封装)和Pillow(Python Imaging Library的一个分支)来识别图片中的文字,并使用pandas和openpyxl将结果保存到Excel文件中。
首先,确保你的Python环境已经安装以下库:
Pillow:用于图像处理pytesseract:用于OCR识别pandas:用于数据处理openpyxl:用于写入Excel文件如果没有安装,可以通过pip安装:
pip install Pillow pytesseract pandas openpyxl
注意:pytesseract需要Tesseract-OCR引擎的支持,你需要从Tesseract GitHub页面下载并安装它。安装完成后,需要设置环境变量TESSDATA_PREFIX指向Tesseract的数据文件目录,或者将Tesseract的执行文件路径添加到系统的PATH变量中。
import pytesseractfrom PIL import Imageimport pandas as pdimport os
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # 示例路径,根据实际情况修改
def ocr_image(image_path):img = Image.open(image_path)text = pytesseract.image_to_string(img, lang='chi_sim') # 使用中文简体模型return text
def process_images(folder_path, output_file):results = []for filename in os.listdir(folder_path):if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff', '.gif')):image_path = os.path.join(folder_path, filename)text = ocr_image(image_path)results.append({'filename': filename, 'text': text})df = pd.DataFrame(results)df.to_excel(output_file, index=False, engine='openpyxl')print(f'Results saved to {output_file}')
folder_path = 'path_to_your_images' # 图片文件夹路径output_file = 'output.xlsx' # 输出Excel文件名process_images(folder_path, output_file)
tesseract_cmd的路径。lang='chi_sim',表示中文简体)。通过上述步骤,你可以轻松实现图片文字的批量识别,并将结果整理存储到Excel文件中。这不仅提高了工作效率,还减少了人为错误。Python的强大功能和丰富的库使得这类自动化任务变得简单可行。希望这篇文章对你有所帮助!