Pytesseract OCR多配置选项

时间:2017-06-18 20:07:16

标签: python ocr tesseract

我在使用pytesseract时遇到了一些问题。我需要将Tesseract配置为配置为接受单个数字,同时也只能接受数字,因为数字零通常与“O”混淆。

像这样:

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

非常感谢,

尼尔

4 个答案:

答案 0 :(得分:35)

tesseract-4.0.0a supports below psm. If you want to have single character recognition, set psm = 10. And if your text consists of numbers only, you can set 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.

Here is a sample usage of image_to_string with multiple parameters.

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

Hope this helps.

答案 1 :(得分:3)

页面分割模式:

  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. 默认,基于可用内容。

答案 2 :(得分:2)

您遇到麻烦的原因是因为字符限制在4.0版本中不起作用。您必须强制使用旧版模式​​(OEM 0)使其限制找到的字符。 tesseract团队中某个地方存在一个尚未解决的错误。

答案 3 :(得分:0)

Tesseract version 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

注意:在 +-60x60px 单字符二进制输入图像上测试