我正在使用pytessaract来为类似的事情做一个图像到文本转换一个号码板。

tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
exit(1)
# The tools are returned in the recommended order of usage
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
# Ex: Will use tool 'libtesseract'
langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[0]
print("Will use lang '%s'" % (lang))这就是我读它的方式,我把它可能是的所有字符白名单
text = pytesseract.image_to_string(Image.open('images/text.jpg'), config= "-c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")现在,pytessaract正在阅读这个词,就好像它在寻找一个字典单词,而这并不能给出理想的结果--有一种方法可以转换字典单词,但是我不知道如何在python中这样做,这是我的问题,谢谢。
发布于 2018-02-22 09:50:51
使用禁用的系统和频繁的DAWG添加配置文件
load_system_dawg F
load_freq_dawg F配置文件应该放在tessdata/configs目录(ex:tessdata/configs/config)中,并在Init过程中传递给tesseract。
我并不是百分之百地相信pytesseract是如何完成的,但是我相信你可以在这里详细阐述。
init()函数签名是这样的:
const char * datapath,
const char * language,
OcrEngineMode oem,
char ** configs,
int configs_size,
const GenericVector< STRING > * vars_vec,
const GenericVector< STRING > * vars_values,
bool set_only_non_debug_params因此,需要将configs设置为指向"config"的指针,将configs_size设置为1
因此,可能是这样的,您可以详细说明如何使其发挥作用:
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_TESSERACT_ONLY, POINTER(ctypes.c_char_p("config")), 1, None, None, False)编辑:
还请注意,禁用DAWG可能无法解决您的问题。如果我是你-我会简单地迭代结果的备选方案,并以最高的信心接受信(如果道格搜索是默认的字母将不会总是具有最高的信心)&工作更多地改善输入图像质量,如描述的这里。
https://stackoverflow.com/questions/48915449
复制相似问题