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

Pytesseract识别结果异常求助(含图像增强实现代码)

解决Pytesseract识别文本异常的问题

问题分析

  • 图像增强逻辑错误:你先对原图做了颜色增强,但后续锐化操作直接使用原图覆盖了之前的颜色增强结果,导致颜色增强未生效。
  • 未指定目标语言:Pytesseract默认识别英文,无法正确处理含重音的越南语文本,导致"cần"被识别为"can","Gala"大小写识别错误。
  • 预处理不足:仅转灰度的对比度不够,没有做二值化处理提升文字与背景的区分度。

修正后的代码

import pytesseract
from PIL import Image
from PIL import ImageEnhance

filename = 'image3.png'
color_image = Image.open(filename)

# 先增强颜色,再基于颜色增强后的图像做锐化
curr_col = ImageEnhance.Color(color_image)
new_col = 5
img_colored = curr_col.enhance(new_col)

# 对颜色增强后的图像执行锐化,而非原图
curr_sharp = ImageEnhance.Sharpness(img_colored)
new_enh = 2
img_enhanced = curr_sharp.enhance(new_enh)

# 转灰度后做二值化,强化文字与背景对比度
bw = img_enhanced.convert('L')
threshold = 127
bw = bw.point(lambda x: 0 if x < threshold else 255, '1')
bw.save('BW_image.png')
img_enhanced.save('enhanced.png')

# 指定越南语语言参数(需提前安装对应训练数据)
text = pytesseract.image_to_string(bw, lang='vie')

print(text)

关键调整说明

  • 修复增强逻辑:锐化操作基于颜色增强后的图像,确保两次增强效果叠加生效。
  • 添加越南语支持:调用image_to_string时指定lang='vie',需提前下载Tesseract越南语训练数据并放入tessdata目录。
  • 优化预处理:转灰度后增加二值化步骤,提升文字与背景的对比度,降低识别干扰。

调整后可正确识别出图片中的Nam 65 cần Gala。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:50:10