OCR:扫描图像的特定部分

Posted

技术标签:

【中文标题】OCR:扫描图像的特定部分【英文标题】:OCR: scan specific part of image 【发布时间】:2020-10-07 18:24:16 【问题描述】:

我是计算机视觉方面的新手,目前正在学习使用 Go 的谷歌云视觉 SDK。现在我有一个问题。

所以我有一张使用DetectTexts() method 扫描的图像。结果很棒!扫描所有文本。

但是,我实际上并不需要所有这些文本。我只需要其中的一部分。下面是我用作示例的图像。我想得到的是用红色突出显示的两个块。

图片

结果

WE-2
Sam WHO
Time
PM 1:57
SYS
mmHg
mmHg
DIA
mmHg
90
62
82
mmHg
PUL
/MIN
MR AVGA
SET
START
STOP
MEM

我不知道最好的方法是什么。我现在想到的是这些方法:

分割以红色突出显示的图像,然后对这些新图像执行 OCR 扫描 或者,获取所有文本,然后使用某种算法(也许是 NLP?)来获取突出显示的文本。

有人可以帮助解决这个问题的正确和最佳方法是什么吗?

【问题讨论】:

您可以在识别之前屏蔽图像。例如,在红色矩形内使用等于 0 且在其外部等于 255 的掩码进行逻辑 OR。 【参考方案1】:

您提到您使用的是 Go,不幸的是我没有任何经验,但我已经在 Python 和 C# 等其他语言中解决了这个问题。我建议的只是创建一个 ROI 或感兴趣区域。基本上,这意味着您将仅将图像裁剪到要从中检测文本的突出显示区域。就像我说的,我不完全确定你是否可以在 Go 中做到这一点,所以你可能需要做一些原始像素操作,而不仅仅是使用成员函数。我假设您想要从中检测文本的区域的位置将保持不变。如果您愿意,您可以创建一个简单的 Python 脚本来生成 ROI,并将裁剪后的图像通过管道传输到 GO。

import cv2
img = cv2.imread('inputImg.png')
output = img[c1:c1+25,r1:r1+25]

#You could do something like this
cv2.imwrite("path/to/output/outputimg.png", output)

【讨论】:

这可能有帮助。让我试试,如果它确实解决了我的问题,将标记为正确答案。谢谢

以上是关于OCR:扫描图像的特定部分的主要内容,如果未能解决你的问题,请参考以下文章

基于百度OCR提取图像中的文本

适用于 Android 的完美 OCR 扫描

用python写一个图像文字识别OCR工具

从复杂文档进行 OCR 扫描

图像 OCR 安卓

从文本图像生成字体