Tesseract无法识别单个字符

时间:2012-03-09 09:55:33

标签: ocr tesseract

如何表示:

  1. 使用绘画(任意大小)创建新图像
  2. 在此图片上添加字母A
  3. 尝试识别 - > tesseract将找不到任何字母
  4. 将此信件复制粘贴5-6次到此图片
  5. 尝试识别 - > tesseract将找到所有字母
  6. 为什么?

4 个答案:

答案 0 :(得分:17)

您必须将“页面分段模式”设置为“单个字符”。

例如,在Android中,您可以执行以下操作:

api.setPageSegMode(TessBaseAPI.pageSegMode.PSM_SINGLE_CHAR);

答案 1 :(得分:9)

您需要将Tesseract的页面分割模式设置为“单个字符”。

答案 2 :(得分:7)

你见过这个吗?

https://code.google.com/p/tesseract-ocr/issues/detail?id=581

错误列表显示“不再是问题”。

  • 请务必使用高分辨率图像。
  • 如果要调整图像大小,请确保保持较高的DPI且不要调整太小
  • 请务必train your tesseract system
  • baseApi.setVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
  • 之前使用init Tesseract代码
  • 另外,您可以查看which font to use with OCR

答案 3 :(得分:2)

执行该配置的python代码如下:

import pytesseract
import cv2
img = cv2.imread("path to some image")
pytesseract.image_to_string(img, config="-c tessedit"
                                             "_char_whitelist=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
                                             " --psm 10"
                                             " -l osd"
                                             " "))

--psm标志定义页面分割模式。

根据tesseract的文献记录,10的意思是:

  

将图像作为单个字符处理。

因此,要识别单个字符,您只需使用--psm 10标志。