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

图像处理 - 有什么好办法可以提取图片的各个元素的坐标?

楚建柏
2023-12-04

有什么好办法可以提取图片的各个元素的坐标

比如下面的图片的分辨率是 720 × 1600

no1-3.png

比如我想获取 「喝牛奶有效缓解暑热并促进身体健康」这几个字出现在图片中的坐标

我想到的办法就是把图片先转出 pdf,因为 pdf 是绝对坐标渲染内容的,所以再读取 pdf 中元素就能获取坐标了

截图 ——> 使用 ocrmypdf 转成文本化的 PDF ——> 使用 pdfplumber 按行读取 PDF ——> 统计坐标点

  • ocrmypdf: https://github.com/ocrmypdf/OCRmyPDF
  • pdfplumber: https://github.com/jsvine/pdfplumber

图片转 pdf 我选用的是 ocrmypdf,为什么选它,因为他是 github 排名第一的


但是这个 ocrmypdf 的实际效果很差劲!

使用上面的图片提取文字都是错版的

比如我想复制这几个字

图片.png

复制出来是

由 RS  器  牛奶 有 效 缓解 暑热 并 促进  身体  健康

感觉还不如微信和钉钉那个 OCR 呢?

而且再用 pdfplumber 读取文本的坐标也不准

x0 应该是 100+,但是它显示的确是 x0

{    "text": "由RS器牛奶有效缓解暑热并促进身体健康",    "x0": 4.9832,    "top": 106.97799,    "x1": 109.63488972813998,    "bottom": 112.97800000000001,    "chars": null,    "char": null}

有什么好用的方案可以实现「有什么好办法可以提取图片的各个元素的坐标」吗?

共有2个答案

符俊材
2023-12-04

所谓的元素是什么意思,怎么判定为一个元素,还是说就是想提取文字的坐标?

施永贞
2023-12-04

这个问题涉及到图像处理和文字识别(OCR)两个领域。首先,你需要将图片中的文字识别出来,这一步通常需要用到OCR工具,如Google的Tesseract OCR等。然后,你需要确定每个文字在图片中的位置,这一步可以通过对OCR结果的坐标进行分析得到。

以下是一种可能的方法:

  1. 使用OCR工具提取文字:可以使用如Google的Tesseract OCR等工具,对图像进行OCR处理,获取文字内容。注意,在使用OCR工具时,需要选择适合的字体和字号,以确保识别的准确性。
  2. 分析OCR结果的坐标:通过分析OCR结果中每个文字的位置信息,可以确定每个文字在图像中的坐标。一般情况下,OCR工具会提供每个文字的坐标信息,如左上角和右下角的坐标等。

对于你提到的ocrmypdf和pdfplumber两个工具,它们主要用于将图片转换为PDF,并从PDF中提取文字。然而,这两个工具并不直接提供图像中文字的坐标信息。因此,如果你需要获取文字在图像中的位置信息,可能需要使用其他工具或方法。

另外,对于一些特定的应用场景,如需要对大量图像中的文字进行识别和定位,可能需要使用更高级的图像处理技术,如基于深度学习的图像分割和识别技术等。这些技术可以将图像中的每个文字分割出来,并对其位置进行精确的定位。然而,这些技术的实现难度较大,需要具备一定的图像处理和深度学习知识。

 类似资料:
  • 问题内容: 什么是最好的Java图像处理库/方法?[关闭]我同时使用JAI媒体API和ImageMagick吗? ImageMagick存在一些可伸缩性问题,基于JNI的JMagick也没有吸引力。与ImageMagick相比,JAI执行大小调整操作时的质量结果较差。 有谁知道过任何出色的开源或商业工具,它们都是本机Java并可以提供高质量的结果? 问题答案: 我知道这个问题已经很老了,但是随着新

  • 问题内容: 在课堂上,我在玩耍,发现CSS可以与虚构元素一起使用。 例: 当我的教授第一次看到我使用此功能时,他对组合元素起作用感到惊讶,并建议我将所有组合元素更改为带有ID的段落。 为什么我的教授不希望我使用虚构元素?他们有效地工作。 另外,他为什么不知道组成元素存在并且可以与CSS一起使用。他们不常见吗? 问题答案: 为什么CSS可以处理假元素? (大多数)浏览器被设计为(在某种程度上)与将来

  • 我已经完成了learnopengl突破系列中的几个教程。com,所以我有一个非常简单的2D渲染器。不过,我想给它添加一个子图像功能,在这里我可以为一种“源矩形”指定一个vec4,因此如果vec4是,它将只渲染一个宽度和高度为32的10,10的矩形,有点像SDL渲染器的工作方式。 渲染器的设置方式是所有精灵都使用一个包含纹理坐标的四边形VAO。起初,我认为我可以为每个精灵使用一个VAO数组,每个都有

  • 我正在研究图像加密和解密算法。我想使图像像素失真。我想要得到每一个像素值,然后按我想要的方式排序这些像素值,这样图像的像素被扭曲,图像被改变。我是在朝仪式的方向走吗?有什么提示吗?或者可以帮助我的示例算法。 我有一个像素的图像。表示图像由像素组成。如果我选择图像的第一个像素行,它是像素,我将这些像素转换为二进制,然后转换为十进制。现在我得到10个像素的十进制值。我按我想要的方式对这些值进行排序。现

  • 本文向大家介绍Android处理图像数据转换的各种方法,包括了Android处理图像数据转换的各种方法的使用技巧和注意事项,需要的朋友参考一下 Android中处理图像是一件很常见的事情,这里记录备忘一些亲身使用过的处理图片数据的方法。 转为Bitmap RGB值转Bitmap Color值转Bitmap 字节数组转Bitmap 读取文件转Bitmap 读取资源转Bitmap 输入流转Bitmap

  • 我有一些用MATLAB进行图像处理的代码。为了运行matlab代码,我们需要购买matlab许可证。但根据我的项目的要求,我必须使用任何开源软件。所以我想我可以把整个代码转换成Java。 用根啤酒是个好主意吗???