小编典典

将文本图像分离为组成字符图像

python

我想将文本图像分成组成字符,也作为图像。例如,使用下面的示例,我最终得到14张图像。

我只会在一行上使用文本,因此y高度并不重要-我需要找到的是每个字母的开头和结尾,并裁剪到这些坐标。这样,我还可以避免出现“ i”,“ j”等问题。

我是图像处理的新手,我不确定该怎么做。某种形式的边缘检测?有没有办法确定连续的单色区域?任何帮助都很棒。

为了提高我的Python技能和对许多可用库的熟悉程度,所以我使用了Python Imaging
Library(PIL)
,但我也了解了OpenCV。


样本图片:

这是一些文字


阅读 125

收藏
2021-01-20

共1个答案

小编典典

这不是一件容易的事,尤其是在背景不均匀的情况下。如果您拥有的是已经像示例一样的二进制图像,则它会稍微简单一些。

如果您的图片不是二进制图像,则可以开始应用阈值算法(Otsu自适应阈值效果很好)

之后,可以使用标记算法来识别形成形状的每个像素“岛”(在这种情况下为每个字符)。

当您有噪音时,就会出现问题。标记过但您不感兴趣的形状。在这种情况下,您可以使用某种启发式方法来确定形状何时为字符(如果文本位于定义明确的位置,则可以使用归一化区域,对象的位置等)。如果这还不够,您将需要处理更复杂的人员,例如形状特征提取算法和某种模式识别算法,例如多层感知器。

最后,这似乎是一项容易的任务,但是取决于图像的质量,可能会变得更加困难。此处引用的算法可以在Internet上轻松找到,也可以在某些库(如OpenCv)中实现。

还有更多帮助,请问,我当然可以帮忙;)

2021-01-20