gpt4 book ai didi

java - 使用 Tesseract hOCR 提取文本属性

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:47:39 26 4
gpt4 key购买 nike

我正在使用 Tesseract(在 Windows 上)从科学图表中提取文本,例如情节,其中有许多孤立的单词或数字,但没有句子或段落。然后我将 HTML 转换为 SVG。这很好用,只是我无法得到

  • 字体大小
  • 字体系列
  • 文本 anchor 的xy坐标
  • 文本方向(例如旋转 Math.PI/2 用于标记图轴)

我可以从边界框中得到一个粗略的字体大小,但这取决于字符是有上伸还是下伸。因此,下面的所有行(在 hOCR 输出中)都具有相同的字体系列和大小:

<span class='ocrx_word' id='word_6' title="bbox 1177 491 1637 549">Herpetotherinae</span> 
<span class='ocrx_word' id='word_13' title="bbox 1183 1179 1514 1228">Cathartidae</span>
<span class='ocrx_word' id='word_35' title="bbox 1847 1742 1907 2077">Accipitridae</span>

span_1 有一个下伸部(在“p”中)和一个 58 的 bbox y 高度,而 span_2 的 bbox 高度为 49(没有下伸部)而 span_3 的 bbox x 宽度为 60,显示文本已旋转。然而,bbox 本身不足以准确定位文本或确定文本方向。

我想使用 Tess4J 并使用任何可以获取这些属性的 API。

如果有人已经从 Tess4J 编写了 SVG 输出,我将不胜感激。 (我的任何代码都是 F/OSS)。

最佳答案

默认情况下,字体信息不包含在 hOCR 输出中,但如果需要可以使用。您可以通过将以下行添加到您的 hocr 来打开它配置文件(或您正在使用的任何配置文件):

hocr_font_info 1

同样的配置变量也可以在命令行上使用(或者,大概是通过 Tess4J 包装器)。

启用此功能后,字体名称和大小将包含在输出中,例如

<span class='ocrx_word' id='word_3_21' title='bbox 946 1267 1121 1297; x_wconf 91; x_font Courier_New; x_fsize 9' dir='ltr'>without</span>

x_font是字体名称 Courier_New x_fsize是以磅为单位的字体大小,即 9

粗体和斜体将在字体名称中和通过使用 <strong> 表示和 <em>标签。

关于java - 使用 Tesseract hOCR 提取文本属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20016767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com