精梳场图像的特征提取

2024-04-19 05:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从事手写字符识别从一个表iamge。到目前为止,一切都很顺利,但我希望我能从一个方框或“梳理”字段的图像中提取角色

例如,在一个特定的字段被裁剪和二值化(使用otu的方法)之后,我只剩下这样的内容:

Binary Field Image

对于角色识别,我有一个使用emnist数据集的经过训练的CNN模型。为了预测人物,我必须一个接一个地提取人物。从框中提取字符的最佳方法是什么?你知道吗

目前,我正在使用一种非常简单的方法,只需找到一组非白线的水平和垂直像素,它们占据了与图像宽度和高度相关的一定数量的像素。例如,我会找到由至少90%的非白色像素组成的水平线,并将具有并发y坐标的像素分组,以形成一个矩形对象,该矩形对象将是在图像上找到的水平线(对于顶部和底部,应该由两条线/矩形组成)。对于垂直线,我也做了类似的事情,只不过最后会得到{2*charLength}行。我使用这些值来裁剪每个字符。然而,它并不完美。你知道吗

以下是一些问题:

  • 磁场并不总是完全笔直(旋转稍微偏离)。我已经应用冲浪和单应性的原始图像,这是一个非常好的工作,但它不是完美的。你知道吗
  • 如果用户写的“1”占据了盒子的整个高度,它很可能会错误地将其表示为盒子的垂直线。你知道吗
  • 坐标并不总是与原始图像和输入图像匹配。因此,有时会有一部分田地被修剪掉。为了解决这个问题,我目前正在提取字段的周围部分(如图中所示),但这也会导致问题,因为表单可能有其他垂直和水平线非常接近某些字段。这将导致我当前的琐碎方法无法正常工作。你知道吗

有没有更好的办法?有一件事是我必须记住表现。我曾考虑只对字段图像再次进行SURF匹配,但对整个表单页进行匹配需要很长时间,因此我不确定是否要对我正在阅读的每个字段再次进行匹配。你知道吗

我希望有人能给我一些建议。我正在使用OpenCV进行图像处理,但文字解决方案很好。谢谢


Tags: 对象方法图像角色表单高度像素字符
1条回答
网友
1楼 · 发布于 2024-04-19 05:33:06

我知道这是一个有点晚的反应,但我最终使用了轮廓特征,OpenCV必须提取字符部分。你知道吗

当OpenCV找到图像的轮廓时,它建立了一个轮廓层次系统。第一层是最外层的盒子,所以我可以抓取下一层的轮廓来提取角色。你知道吗

它在一开始并没有100%起作用,但经过一些额外的图像处理后,我至少能够在99%的情况下正确地提取字符。你知道吗

相关问题 更多 >