Python PyteSeract-将OCR限制为一组字符
我和pytesseract有麻烦。我知道可以使用命令行参数将tesseract限制为一组特定的字符:Python PyteSeract-将OCR限制为一组字符,python,ocr,tesseract,Python,Ocr,Tesseract,我和pytesseract有麻烦。我知道可以使用命令行参数将tesseract限制为一组特定的字符: tesseract input.tif output nobatch digits 我发现一些ppl说他们可以用python中的以下行限制tesseract: import tesseract ocr = tesseract.TessBaseAPI(); ocr.Init(".","eng",tesseract.OEM_TESSERACT_ONLY) ocr.SetVariable("tess
tesseract input.tif output nobatch digits
我发现一些ppl说他们可以用python中的以下行限制tesseract:
import tesseract
ocr = tesseract.TessBaseAPI();
ocr.Init(".","eng",tesseract.OEM_TESSERACT_ONLY)
ocr.SetVariable("tessedit_char_whitelist", "0123456789")
但这是为了使用tesseract API,我正在使用Pyteseract。。。。最后,我还尝试:
print(image_to_string(someimage, config='outputbase digits'))
但这不起作用,因为我的输出中仍然有字母。这很奇怪,因为我正在使用下面的代码,它正在工作:
print(image_to_string(screen, config='-psm 10'))
PSM代表PageSegmentationMode,它允许我将图像文件解析为单个字符。我不明白为什么当它们都是tesseract的命令行参数时,这个代码段可以工作,而之前的代码段不能工作
有人能帮忙吗?我想将这两个选项用于自定义单词列表(我在tesseract的config文件夹中创建的)。最终找到了解决方案,如果它能帮助任何人。。。这来自tesseract帮助页面: 最简单的tesseract调用: 我可以从中推断出正确的语法(事实上,我在stack overflow上找到的所有东西都指向了错误的方向,可能是因为tesseract的不同版本)。请记住,我使用的是tesseract 3.05(GitHub上提供的win安装程序)和Pyteseract(从pip安装) 正如我们在帮助页面上看到的,outputbase参数位于文件名之后,其他选项之前,这允许同时使用PSM和受限字符集
tesseract帮助页面中的所有命令行参数都可以在config变量中以这种方式使用 您的配置字符串不正确。它应该在末尾有配置。例如,“-psm 7位数字”是否有办法仅限于英文字母和数字??
tesseract imagename outputbase
image_to_string(someimage, config='digits -psm 7')