在linux中使用命令行获取灰度图片的“文本”边界框的坐标

lia*_*dio 5 linux bash imagemagick ghostscript superuser

正如标题所说。

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

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

输入.png

输出.png

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

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

Mar*_*ell 2

我不明白您描述中的所有单词,我认为图表会有所帮助,但如果您只是想知道-trim示例代码所暗示的作用:

identify -format "%@" image.png
200x100+10+20
Run Code Online (Sandbox Code Playgroud)

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

identify -format "%@" paper.png
406x620+38+68
Run Code Online (Sandbox Code Playgroud)

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

如果我用红色绘制该矩形,我会得到:

convert paper.png -stroke red -fill none -draw "rectangle 38,68 444,688" result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

convert -format %@ paper.png info:
406x620+38+68
Run Code Online (Sandbox Code Playgroud)