【发布时间】:2021-09-22 10:49:48
【问题描述】:
我有一个任务,我必须提取图像后面的文本,并从图像本身进行 OCR 编辑。此文本是透明的。问题是有一个图像后面有文本,它不是 OCR 编辑的,它只是普通文本,它不透明。如何区分需要(透明)和不需要(不透明)的文本?
这是一个有代表性的pdf文件:https://easyupload.io/rbo333 图像 OCR 文本应在第 2、3、12 页提取,但在第 4 页也提取文本。在第 4 页,图像后面没有 OCR 文本,但图像下方有常规文本。我需要以某种方式将其过滤掉,因为我只需要 OCR 文本。
【问题讨论】:
-
您可能对this answer 感兴趣,它展示了忽略图像覆盖的文本的文本剥离器类的概念证明。请注意,这个答案已经很老了,所以 PDFBox 中的一些细节可能同时发生了变化。如果您无法让
VisibleTextStripper为您工作,请回来分享一个具有代表性的 PDF 示例供我们测试。 -
@mkl 谢谢,我看了一下,看起来像,如果我错了,请纠正我,它根据坐标确定角色是否在图像中。现在这很好,但我已经提取了图像中的字符,因为我需要从 OCR 编辑的图像中提取可搜索的文本。所以我需要以某种方式区分“就在”图像“后面”的常规文本和“在”图像和 OCR-d 上的文本。我用代表 pdf 的链接编辑了我的问题。
-
您隐含地区分了这些情况。在绘制图像之前绘制“图像后面”的文本。因此,该类在处理图像时发现了该文本并将其删除。 “图像上”的文本在图像之后绘制。因此,该类将在处理图像后找到它并且不会将其删除。
-
请澄清。起初我以为您只想要图像未覆盖的文本。这就是引用答案中的旧类提取的内容。但你现在似乎不想要那样。也许反过来,您只想要图像覆盖的文本?还是仅在某些图像上绘制的文本?
-
@mkl 好吧,有些图像上有 OCR 编辑的可搜索文本。现在我只需要从文档中提取该文本,它工作正常。但是第四页上有一张图片,后面有常规文本,不是 OCR 编辑的。我需要以某种方式将该常规文本与 OCR 编辑文本区分开来。我的印象是常规文本在图像“后面”,而 OCR 编辑文本在图像“前面”,但我不确定了。