【发布时间】:2019-01-04 12:26:31
【问题描述】:
我正在尝试使用 Tesseract(版本 3.04.00)执行 OCR。
我所有的图像都有相同的模式(数字点数字,即精度为 2 位的小数)。我尝试使用--user-patterns 选项,但我无法让它工作。
我做了什么:
- 在第一行创建一个
patterns.txt和\d.\d\d的文件 - 使用选项
--user-patterns patterns.txt
但我收到以下错误:
pytesseract.pytesseract.TesseractError: (1, "Tesseract Open Source OCR Engine v3.04.00 with Leptonica read_params_file: Can't open 1 read_params_file: Can't open user-patterns read_params_file: parameter not found: \\d.\\d\\d")
如何将我的模式指定给 Tesseract ?这甚至是正确的方法吗? 在此先感谢您的帮助或建议,我在 Tesseract 上找不到太多文档。
编辑:添加 Python 代码
img = cv2.imread("path/to/image", cv2.IMREAD_GRAYSCALE)
text = pytesseract.image_to_string(img, config="-psm 7 --user-patterns patterns.txt")
print(text)
【问题讨论】:
-
你能显示你尝试过的代码吗?错误信息与pytesseract有关,所以我假设你已经编写了一些代码来得到这个错误。
-
编辑了问题。但是,我找到了一种更简单的方法,请检查我的答案。我很好奇为什么这不起作用,这将是一个更通用的解决方案。
-
附带说明 -
user-patterns不会使 tesseract 返回ONLY文件中定义的模式。如果它们遵循模式,它只会稍微增加识别符号的置信度,对于用户词也是如此。 -
@DmitriiZ。是的,我在文档中读到了这一点,但我希望它会带来改进,因为有时它在所有方面都是错误的(例如,1.13 被读取为 LIE ......)。
标签: python ocr tesseract python-tesseract