当前位置: 首页 > 知识库问答 >
问题:

如何使用java忽略Tesseract OCR中的特殊字符

晋天逸
2023-03-14

我使用java通过Tesseract OCR从图像中提取了文本。但输出由一些特殊字符组成,因为图像包含一些符号。

我想忽略所有特殊字符,只显示文本。我有办法做到吗?

共有1个答案

韦衡
2023-03-14

在tesseract中,可以设置TessBaseAPI。VAR_CHAR_白名单TessBaseAPI。VAR_CHAR_BLACKLIST以忽略某些特殊字符。

以下操作将使tesseract只能识别A-Z和数字

String whiteList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
tessBaseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST,whiteList);

下一个片段将允许您识别除~和fl之外的所有内容

String blackList = "~fl";
tessBaseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST,blackList );

另外,请注意,正如tesseract github问题中提到的,您不能使用tesseract 4.0 Alpha LSTM来黑名单或白名单字符,相反,您应该使用图像上预期的字符来训练LSTM。

当然,如果你想-你仍然可以使用3.*版本的tesseract,它的tessdata位于这里

 类似资料:
  • 使用Umbraco v6,检查搜索(不是完整的Lucene查询)。这是一个拉丁/南美洲网站。我问过我的同事,他们如何在搜索/URL中键入标题(字母上的重音符号),他们都说他们没有,他们只使用“常规”字符(a-Z,a-Z)。 我知道在传递到Examine时如何从字符串中去掉特殊字符,但我需要另一种方法,如Examine从属性中删除特殊字符以匹配查询。我有许多“节点”的名称中有标题(这是我正在搜索的属

  • 我有一个将大写/小写字符串转换为大写字符串的正则表达式。问题是,在我的国家,名字中有特殊字符是很正常的,这让我的反应很不舒服 如果我对“JOAO CARLOS NOBREGA”使用此方法,则返回“JOAO CARLOS NOBREGA”。但如果我将此方法用于“JOÃO CARLOS NOBREGA”,则返回“JOÃO CARLOS NOBREGA”。我如何解决这个问题?

  • 问题内容: 如何在Java / Eclipse中使用/显示♥,♦,♣或like等字符? 当我尝试直接使用它们时,例如在源代码中,Eclipse无法保存文件。 我能做什么? 编辑:如何找到Unicode转义序列? 问题答案: 问题在于,您使用的字符无法在文件设置为(Cp1252)的编码中表示。从我的角度来看,您基本上有两个选择: 选项1. 更改编码。 根据IBM的介绍,您应该将编码设置为UTF-8。

  • 关于字符集和替代字形 除键盘上可看到的字符之外,字体中还包括许多字符。根据字体的不同,这些字符可能包括连字、分数字、花饰字、装饰字、序数字、标题和文体替代字、上标和下标字符、变高数字和全高数字。字形是特殊形式的字符。例如,在某些字体中,大写字母 A 有几种形式可用,如花饰字或小型大写字母。 插入替代字形的方式有三种: 可以使用选择上下文菜单来查看和插入适用于所选字符的字形。 可以使用“字形”面板来

  • 问题内容: 有人知道是否可以对SQL Server数据库中的列进行%LIKE%搜索,但可以忽略该列中的任何特殊字符吗? 因此,例如,如果我有一个名为“歌曲”的列,并且其中包含以下内容… 黑或白 直到布鲁克林不睡觉 船歌 爸爸别讲 如果用户搜索“直到布鲁克林之前都不会偷偷摸摸”,那么即使他们忘记了撇号,我也希望它返回一个匹配项。如果他们搜索“ SOUL”,我也希望它返回第四行。我确定你知道这个主意。

  • 我的回文程序有一点逻辑错误,当我在字符串的前面或后面插入特殊字符时,我得到一个指示,表明该字符串不是回文。我正在编写回文,以便在考虑字符串时忽略所有特殊字符。例如,@bob将被认为不是回文,而b@ob将被认为是回文。我该如何编辑我的代码,使特殊字符被忽略,而不管位置在哪里?所有这些都是通过递归完成的。 ''' import java.util.Scanner; 公共类递归练习{ } '''