4

正如标题所说的那样。

严格来说,我定义为灰度图像的“文本”边界框是一组 4 个坐标(x、y、x+width、y+height),它们必须在该图像中定义一个矩形区域,该区域具有最大数量非白色像素,同时尽可能少的白色像素(不改变非白色像素的最大数量)。我有引号中的文本,因为图像实际上不包含文本,因为图像只包含带颜色的像素。

在我的 Ubuntu 中安装 ImageMagick 并在终端中输入命令:$convert input.png -trim ouput.png,我得到:

输入.png

输出.png

在 Web 浏览器的新选项卡中打开这两个图像,您将了解它们之间的区别,您还将了解我定义为“文本”边界框的内容。output.png 实际上具有我正在寻找的宽度和高度。我不知道如何获取 x 和 y 坐标。

此处为pdf页面提供的答案 (1)不符合我的标准,因为gs给我的“文本”边界框有很大的白边距(实际上据我所知,gs定义为“文本”边界框pdf 与我对图片的“文本”边界框的定义不同)。

4

2 回答 2

2

我不理解您描述中的所有单词,我认为图表会有所帮助,但如果您只想知道-trim示例代码所暗示的内容:

identify -format "%@" image.png
200x100+10+20

所以,对于你的形象,你得到

identify -format "%@" paper.png
406x620+38+68

这意味着您的框在左上角右侧 38 像素,从左上角向下 68 像素,宽 406 像素,高 620 像素。

如果我用红色画出那个矩形,我会得到:

convert paper.png -stroke red -fill none -draw "rectangle 38,68 444,688" result.png

在此处输入图像描述

获得相同结果但使用convert代替的另一种方法identify是:

convert -format %@ paper.png info:
406x620+38+68
于 2015-09-27T08:47:46.557 回答
0

图像没有“文本边界框”,因为显然没有文本。

PDF 文件中的图像本身可能包含白色像素,如果它们是从书本上扫描的,那么它们几乎肯定会包含白色像素。这些像素计入图像的边界框,因为它们是白色不透明的,并且会遮挡在它们下方绘制的任何内容。

将“文本边界框”定义为“该图片中没有白边且只有文本的区域”也是相当荒谬的。如果它在图像中,则没有文本,只有定义像素的图像样本。那是文字的图片,而不是真正的文字。为了区分包含文本的图像区域和包含非文本的区域,您将需要 OCR 软件,因为只有 OCR 软件能够检测文本和非文本之间的差异,所以没有其他方法可以做到这一点。

于 2015-09-27T08:26:59.537 回答