You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取成绩单图像不清晰,OCR及表格提取失效如何解决?

提升成绩单图像OCR与表格提取效果的解决方案

这个问题完全可以解决,核心问题出在原始图像模糊导致OCR识别准确率低下,结合图像预处理、OCR参数优化和表格提取配置调整就能有效改善效果。

1. 先做图像预处理,修复模糊问题

模糊的图像是OCR识别无效内容的主要原因,通过OpenCV对图像做增强处理,提升文字清晰度:

import cv2
import numpy as np

# 读取原始图像
img = cv2.imread('1.jpeg')
# 灰度化:减少色彩干扰
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 高斯降噪:去除图像噪点
blur = cv2.GaussianBlur(gray, (5,5), 0)
# 自适应阈值二值化:增强文字与背景的对比度
thresh = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
# 图像锐化:强化文字边缘
kernel = np.array([[0,-1,0], [-1,5,-1], [0,-1,0]])
sharpened = cv2.filter2D(thresh, -1, kernel)
# 保存处理后的图像
cv2.imwrite('processed_1.jpeg', sharpened)

处理后的图像会大幅提升文字辨识度,为后续OCR和表格提取打下基础。

2. 优化Tesseract OCR参数

语言参数修正

如果你的成绩单是中文(或中英文混合),必须修改lang参数,默认的eng无法识别中文内容:

from img2table.ocr import TesseractOCR
# 中英文混合识别用'chi_sim+eng',纯中文用'chi_sim'
ocr = TesseractOCR(lang='chi_sim+eng', psm=6, oem=3)

关键参数解释

  • psm=6:告诉Tesseract将图像视为单一均匀文本块,适合表格类结构化内容的识别
  • oem=3:使用混合引擎(传统引擎+LSTM引擎),平衡识别速度与准确率
  • 注意:需确保Tesseract已安装对应语言包(比如中文语言包需单独下载安装)

3. 调整表格提取配置

img2table的extract_tables方法支持多个参数优化表格识别,针对无框表格、低清晰度场景做调整:

from img2table.document import Image

# 使用预处理后的图像
img = Image(src='processed_1.jpeg')
# 提取表格时设置置信度阈值,允许识别无框表格
img_tables = img.extract_tables(ocr=ocr, min_confidence=50, borderless_tables=True)
# 导出到Excel
img.to_xlsx("test.xlsx", ocr=ocr)
  • min_confidence=50:过滤置信度低于50%的表格区域,减少无效内容
  • borderless_tables=True:如果你的成绩单是无框表格,开启此参数能提升识别率

4. 备选方案:换用更适合中文的OCR引擎

如果Tesseract效果仍不理想,可以尝试PaddleOCR,它对中文和表格结构的支持更优:

from img2table.ocr import PaddleOCR
from img2table.document import Image

# 初始化PaddleOCR,支持中文识别
ocr = PaddleOCR(lang='ch')
# 使用预处理后的图像
img = Image(src='processed_1.jpeg')
img_tables = img.extract_tables(ocr=ocr)
img.to_xlsx("test_paddle.xlsx", ocr=ocr)

内容的提问来源于stack exchange,提问作者Siddharth Goyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 13:20:15