首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭用于pytessaract的英语词典单词(用于alpr系统)

关闭用于pytessaract的英语词典单词(用于alpr系统)
EN

Stack Overflow用户
提问于 2018-02-21 21:05:00
回答 1查看 2.2K关注 0票数 2

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

代码语言:javascript
复制
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))

这就是我读它的方式,我把它可能是的所有字符白名单

代码语言:javascript
复制
text = pytesseract.image_to_string(Image.open('images/text.jpg'), config= "-c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")

现在,pytessaract正在阅读这个词,就好像它在寻找一个字典单词,而这并不能给出理想的结果--有一种方法可以转换字典单词,但是我不知道如何在python中这样做,这是我的问题,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-22 09:50:51

使用禁用的系统和频繁的DAWG添加配置文件

代码语言:javascript
复制
load_system_dawg     F
load_freq_dawg       F

配置文件应该放在tessdata/configs目录(ex:tessdata/configs/config)中,并在Init过程中传递给tesseract。

我并不是百分之百地相信pytesseract是如何完成的,但是我相信你可以在这里详细阐述。

init()函数签名是这样的:

代码语言:javascript
复制
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

因此,可能是这样的,您可以详细说明如何使其发挥作用:

代码语言:javascript
复制
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_TESSERACT_ONLY, POINTER(ctypes.c_char_p("config")), 1, None, None, False)

编辑:

还请注意,禁用DAWG可能无法解决您的问题。如果我是你-我会简单地迭代结果的备选方案,并以最高的信心接受信(如果道格搜索是默认的字母将不会总是具有最高的信心)&工作更多地改善输入图像质量,如描述的这里

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48915449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档