Pytesseract OCR 多个配置选项

Pytesseract OCR multiple config options

我在使用 pytesseract 时遇到了一些问题。我需要将 Tesseract 配置为它被配置为接受单个数字,同时也只能接受数字,因为数字零经常与 'O'.

混淆

像这样:

target = pytesseract.image_to_string(im,config='-psm 7',config='outputbase digits')

tesseract-4.0.0a以下支持psm。如果要识别单个字符,设置psm = 10。如果您的文本仅由数字组成,您可以设置 tessedit_char_whitelist=0123456789.

Page segmentation modes:
  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single word.
  9    Treat the image as a single word in a circle.
 10    Treat the image as a single character.
 11    Sparse text. Find as much text as possible in no particular order.
 12    Sparse text with OSD.
 13    Raw line. Treat the image as a single text line,
                        bypassing hacks that are Tesseract-specific.

这里是 image_to_string 使用多个参数的示例。

target = pytesseract.image_to_string(image, lang='eng', boxes=False, \
        config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')

希望对您有所帮助。

您遇到问题的原因是字符限制在 4.0 版中不起作用。您必须强制使用传统模式 (oem 0) 以限制找到的字符。在 tesseract 团队的某处有一个他们尚未解决的错误。

Tesseract 版本 5.0.0-alpha 可以使用以下命令:(使用 psm=13 和 oem=1 或 3)

pytesseract.image_to_string(export_image ,lang='eng', config='--psm 13 --oem 1 -c tessedit_char_whitelist=ABCDEFG0123456789')

请注意,采用 eng 训练数据集:https://github.com/tesseract-ocr/tessdata_fast/blob/master/eng.traineddata

Note:Tested +-60x60px 的二进制输入图像,单个字符

页面分割模式:

  1. 仅限方向和脚本检测 (OSD)。

  2. 使用 OSD 自动分页。

  3. 自动页面分割,但没有 OSD 或 OCR。 (未实施)

  4. 全自动页面分割,但没有OSD。 (默认)

  5. 假设有一列可变大小的文本。

  6. 假设一个统一的垂直对齐文本块。

  7. 假设一个统一的文本块。

  8. 将图像视为单个文本行。

  9. 将图像视为单个单词。

  10. 将图像视为圆圈中的单个单词。

  11. 将图像视为单个字符。

  12. 文字稀疏。尽可能多地查找不分先后顺序的文本。

  13. 带有 OSD 的稀疏文本。

  14. 原始线。将图像视为单个文本行,绕过特定于 Tesseract 的黑客攻击。

OCR 引擎模式:

  1. 仅限旧版引擎。
  2. 仅限神经网络 LSTM 引擎。
  3. 传统 + LSTM 引擎。
  4. 默认,基于可用的。