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

Tesseract识别数字1为t求助:截图邮件提取异常

截图邮件地址OCR提取问题

我尝试从截图中提取邮件地址,使用的代码如下:

image = cv2.imread('image_name.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
thresh = 255 - thresh
text = pytesseract.image_to_string(thresh, config = '--psm 6')

我已经试过灰度化、阈值处理、反转等多种预处理方式,但问题仍未解决:之前数字5被识别为's'、数字1被识别为'i',用上述代码预处理后5的识别问题解决了,但现在数字1被识别为't'。

另外,我在Anaconda的Jupyter Notebook中运行cv2.imshow()时出现报错:

The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'

无法直接查看预处理后的图片,处理后的图片为黑白高对比度效果,文字为白色、背景为黑色。


解决建议

1. 针对数字1的识别优化

  • 限定识别字符范围,添加白名单只保留邮件地址常用字符,减少误判:
    text = pytesseract.image_to_string(thresh, config='--psm 6 -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.')
    
  • 调整--psm参数,因为邮件地址是单行文本,尝试用--psm 7(将图像视为单行):
    text = pytesseract.image_to_string(thresh, config='--psm 7 -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.')
    

2. 优化预处理步骤

  • 添加形态学操作去除小噪点,细化文字边缘:
    import cv2
    import numpy as np
    
    image = cv2.imread('image_name.jpg')
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
    thresh = 255 - thresh
    # 形态学开运算,消除小干扰点
    kernel = np.ones((1,1), np.uint8)
    thresh = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel)
    text = pytesseract.image_to_string(thresh, config='--psm 6 -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.')
    

3. 解决cv2.imshow报错问题

  • 在Jupyter Notebook中用matplotlib替代显示图片:
    import matplotlib.pyplot as plt
    
    # 显示预处理后的灰度图
    plt.imshow(thresh, cmap='gray')
    plt.axis('off') # 隐藏坐标轴
    plt.show()
    
  • 也可以重新安装带GUI支持的OpenCV:conda install -c conda-forge opencv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:10:51