小能豆

Pytesseract OCR 多个配置选项

javascript

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

像这样:

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


阅读 51

收藏
2024-07-15

共1个答案

小能豆

在使用 pytesseract 时,你可以通过配置 Tesseract 的参数来实现只接受单个数字并避免将数字零识别为字母“O”。你提到的配置存在一个小问题,即重复使用了 config 参数。实际上,应该将所有配置选项合并到一个字符串中。

以下是实现这种配置的方法:

import pytesseract
from PIL import Image

# 加载图像
im = Image.open('your_image.png')

# 配置 Tesseract 只识别数字,并使用单字符模式
custom_config = r'--psm 7 -c tessedit_char_whitelist=0123456789'

# 执行 OCR
text = pytesseract.image_to_string(im, config=custom_config)

print(text)

解释:

  1. 加载图像:使用 PIL.Image.open 加载你的图像。
  2. 自定义配置:将所有 Tesseract 配置选项合并到一个字符串中。在这里:
  3. --psm 7:页面分割模式 7,将图像视为单行文本。
  4. -c tessedit_char_whitelist=0123456789:设置 Tesseract 只识别数字。

其他注意事项:

  • 检查 Tesseract 版本:确保你安装的是最新版本的 Tesseract,因为选项可能会因版本而异。
  • 验证 Tesseract 可执行文件的路径:确保 Tesseract 可执行文件已正确添加到系统的 PATH 中,或者在脚本中直接指定路径。

如果需要指定 Tesseract 可执行文件的路径,可以这样做:

import pytesseract
from PIL import Image

# 指定 Tesseract 可执行文件的路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 加载图像
im = Image.open('your_image.png')

# 配置 Tesseract 只识别数字,并使用单字符模式
custom_config = r'--psm 7 -c tessedit_char_whitelist=0123456789'

# 执行 OCR
text = pytesseract.image_to_string(im, config=custom_config)

print(text)

通过这种方式配置 Tesseract,可以使其只接受单个数字并避免将数字零与字母“O”混淆。

2024-07-15