Google Vision复杂的OCR执行,带有两列文本

问题描述 投票:0回答:1

对不起,如果此问题已在此处提出,但我无法找到答案。

所以,我正在创建C#OCR程序以扫描商店收据。 Vision OCR DocumentTextDetection本身可以非常准确地使用文本,但我还有其他问题:

当我扫描收据(下图中给出的模板)时,Vision OCR使用双列密集文本表现奇怪。例如,我有这种收据模板格式:

enter image description here

响应通常是一列字符串,其中包含第一列的产品名称或第二列的价格。

所以通常的反应的例子:

RECEIPT产品1产品2产品3 9.99 A产品4 9.99 A 12.10 A产品5

此回复不允许我正确连接每个项目与相应的价格。

当我使用图像编辑程序(如Photoshop)减少产品和价格列之间的距离时,它可以正常工作并逐行扫描收据,因此我可以轻松识别哪个价格属于哪个产品。

我的问题是:请你给我一个提示,我可以通过创建新图像以编程方式调整这两列之间的距离。或者更好的想法是将收据图像分成2个图像,每列1个图像并分别对它们进行OCR?但老实说,我不知道如何识别列空间并将其剪切成新图像,所以对此有何建议?

c# ocr image-recognition vision google-vision
1个回答
1
投票

首先,对图像进行二值化,然后使用一些图像处理算法(如“形态 - 侵蚀”)对其进行预处理,以便根据两列之间的空间将原始图像分割为一半。怎么样?由于像素值在黑色区域中最低,因此您可以识别水平扫描原稿时存在下降值。最后,您可以使用OCR来检测数字。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.