有没有什么做统计的网站,主题库 wordpress,readmore wordpress,爱站网长尾关键词搜索在图像处理、文档数字化、发票识别等场景中#xff0c;OCR#xff08;Optical Character Recognition#xff0c;光学字符识别#xff09;技术应用广泛。而在 Python 中#xff0c;借助开源工具 Tesseract#xff0c;我们可以快速构建强大的文字识别系统。
本文将手把手…在图像处理、文档数字化、发票识别等场景中OCROptical Character Recognition光学字符识别技术应用广泛。而在 Python 中借助开源工具Tesseract我们可以快速构建强大的文字识别系统。本文将手把手带你了解如何使用 Python 与 Tesseract 配合进行 OCR 文字识别从环境搭建、基本使用、识别优化到多语言支持与图像预处理策略全面覆盖开发所需知识点。一、什么是 TesseractTesseract 是由 Google 维护的开源 OCR 引擎具备如下特点支持 100 多种语言支持垂直文本、右到左文字如阿拉伯文、日文可训练自定义字体模型在多种平台上表现优秀Windows/Linux/Mac它本身是一个命令行工具但通过 Python 的pytesseract包我们可以非常方便地调用它。二、环境准备1. 安装 TesseractWindows前往 https://github.com/UB-Mannheim/tesseract/wiki 下载对应版本安装后记下安装路径如C:\Program Files\Tesseract-OCR\tesseract.exemacOSbrew install tesseractLinux (Debian/Ubuntu)sudo apt update sudo apt install tesseract-ocr2. 安装 Python 依赖pip install pytesseract pillow opencv-python三、基本识别示例以下是一个最基础的图像文字识别示例from PIL import Image import pytesseract # Windows 特别注意路径 pytesseract.pytesseract.tesseract_cmd rC:\Program Files\Tesseract-OCR\tesseract.exe img Image.open(example.png) text pytesseract.image_to_string(img, langeng) print(text)如果是 Linux/macOS 系统可以省略tesseract_cmd设置。四、支持中文 OCR默认的 Tesseract 安装中可能未包含中文支持。你需要额外安装语言包# Ubuntu 系统 sudo apt install tesseract-ocr-chi-sim # Windows 可通过官网下载 chi_sim.traineddata 文件放入 tessdata 目录识别中文示例text pytesseract.image_to_string(img, langchi_sim)五、图像预处理优化识别效果OCR 的识别效果很大程度依赖于图像质量下面是常见预处理方法import cv2 # 加载图像 img cv2.imread(example.png) # 转为灰度图 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化处理 _, thresh cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY) # 去噪可选 blur cv2.medianBlur(thresh, 3) # OCR 识别 text pytesseract.image_to_string(blur, langchi_sim) print(text)六、识别区域与数据提取有时候我们不需要整张图的文字而是某个区域或字段如身份证号码、发票编号。使用裁剪识别box (100, 200, 400, 250) # x1, y1, x2, y2 cropped img.crop(box) text pytesseract.image_to_string(cropped, langeng)获取位置信息data pytesseract.image_to_data(img, langeng, output_typepytesseract.Output.DICT) for i in range(len(data[text])): if int(data[conf][i]) 60: # 置信度过滤 print(fWord: {data[text][i]}, Pos: ({data[left][i]}, {data[top][i]}))七、常见问题与优化建议问题原因解决方案识别结果乱码字体不清晰 / 语言包缺失安装正确语言包增强对比度中文识别效果差图像质量不高灰度二值化预处理边框或水印干扰识别噪声过多尝试裁剪目标区域八、进阶批量识别、PDF、表格结构识别批量识别文件夹图片import os for file in os.listdir(images): img_path os.path.join(images, file) text pytesseract.image_to_string(Image.open(img_path), langeng) print(f{file}:\n{text}\n)PDF OCR需安装pdf2imagepip install pdf2image sudo apt install poppler-utils # Linuxfrom pdf2image import convert_from_path pages convert_from_path(document.pdf) for i, page in enumerate(pages): text pytesseract.image_to_string(page, langchi_sim) print(fPage {i1}:\n{text}\n)总结通过 Python Tesseract我们可以构建出灵活、可扩展的 OCR 系统。掌握图像预处理、语言包配置、区域提取等技巧将显著提升识别精度与实用性。如果你在 Tesseract 使用中遇到实际问题欢迎评论区交流或私信讨论。