0

我的目标是分析包裹上的标签和 OCR 某些感兴趣领域的一些文本。图像可能如下所示:

在此处输入图像描述

任何感兴趣的都在左栏中。我已经能够去除边缘,剪切图像并扭曲片段。对于 articlenumber 我得到这样的东西(已经二值化):

在此处输入图像描述

我目前的问题与我想消除的右上角的矩形有关,因此选择正确的字符簇更容易。不幸的是,这些标签不是很标准化,所以角矩形可以用文本填充,可以不那么高,但也可以更宽(大约到中心)。甚至文章编号也可以在不同的位置,例如在图像上或在角落-rentangle 下方。例如,这是另一个提取的 articlenumber-roi:

在此处输入图像描述

文本甚至可以触摸第一个 roi 上看到的矩形。我们也不应该使用固定的像素大小,标签的物理大小可能有很大不同,因此提取的 rois 的分辨率可能会有很大差异。

顺便说一句:如您所见,我们甚至混合了手写和打印文本。只要将文本分成单独的字符,我就已经有一个神经网络来阅读文本,但是,那是另一天的问题。

我还应该提到,检测边缘可能有点不干净,两侧可能有一些线段。为了消除它们,我在中心放置了一个比图像略小的黑色遮罩矩形,然后我检查剩余的轮廓并丢弃所有看起来很大的宽度或高度的东西。但是,这也可以删除部分矩形边缘。另一方面,我可以想象克隆图像并在右侧和顶部给它一个定义的边框,这也会导致一个封闭的矩形。我对另一种边缘检测持怀疑态度,因为很难从 Is 或 Bs 甚至某些数字中区分搜索到的边缘 appart。

不过,我的问题是:如何检测那个矩形?我找到了查找形状的教程,但它们似乎只适用于填充的矩形,但如果角落里有文字,那将不起作用。

我正在使用 Java 并且更喜欢 Java 代码,但如果没有太多 numpy 魔法,我也欢迎 Python 代码。我使用 OpenCV 来处理图像。

4

0 回答 0