您很可能需要执行以下操作:
>在整个页面上应用Hough Transform算法,这应该会产生一系列页面部分。
>对于您获得的每个部分,请再次应用。如果当前部分产生2个元素,那么你应该处理类似于上面的矩形。
>完成后,您可以使用OCR提取数值。
在这种情况下,我建议你看一看JavaCV(OpenCV Java Wrapper),应该允许你处理Hough变换部分。你会需要一些类似于Tess4j(Tesseract Java Wrapper),它应该允许你提取你之后的数字。
另外,为了减少误报,您可能需要执行以下操作:
>如果您确定某些坐标绝不会包含您之前的数据,请裁剪图像。这应该给你一个更小的图片使用。
>将图像更改为灰度可能是明智的(假设您使用彩色图像)。颜色可能对OCR解析图像的能力产生负面影响。
编辑:根据你的评论,给出这样的:
+------------------------------+
| +---+---+ |
| | | | |
| +---+---+ |
| +---+---+ |
| | | | |
| +---+---+ |
| +---+---+ |
| | | | |
| +---+---+ |
| +---+---+ |
| | | | |
| +---+---+ |
+------------------------------+
您将裁剪图像,以便通过裁剪图像删除没有相关数据的区域(左边的部分),您会得到这样的:
+-------------+
|+---+---+ |
|| | | |
|+---+---+ |
|+---+---+ |
|| | | |
|+---+---+ |
|+---+---+ |
|| | | |
|+---+---+ |
|+---+---+ |
|| | | |
|+---+---+ |
+-------------+
想法是运行Hough变换,以便您可以获得包含矩形的页面的段,如:
+---+---+
| | |
+---+---+
然后你会再次应用霍夫变换,结束两个段,你拿左边的。
一旦你有左段,你会应用OCR。
你可以尝试手前应用OCR,但最多时,OCR将会识别的数字值,书面和两种类型,从我得到的,不是你的后。
此外,描绘矩形的额外线可能会使OCR偏离轨道,并使其产生不良结果。