Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyteSeract-将OCR限制为一组字符_Python_Ocr_Tesseract - Fatal编程技术网

Python PyteSeract-将OCR限制为一组字符

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

我和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("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')