我想将文本图像分成它的组成字符,也作为图像。例如,使用下面的示例,我最终得到 14 张图像。
我只会在一行中使用文本,因此 y 高度并不重要 - 我需要找到每个字母的开头和结尾并裁剪到这些坐标。这样我也可以避免“i”、“j”等问题。
我是图像处理的新手,我不确定如何去做。某种形式的边缘检测?有没有办法确定纯色的连续区域?任何帮助都很棒。
为了提高我的 Python 技能并熟悉一些可用的库,所以我正在使用 Python Imaging Library (PIL) ,但我也看过 OpenCV。
示例图片:
最佳答案
这不是一件容易的事,尤其是在背景不均匀的情况下。如果您拥有的是像示例一样的二进制图像,则它会稍微简单一些。
如果您的图像不是二值图像,您可以开始应用阈值算法(Otsu 自适应阈值效果很好)
之后,您可以使用标记算法来识别构成形状的每个“孤岛”像素(在本例中为每个字符)。
当你有噪音时,问题就出现了。已标记但您不感兴趣的形状。在这种情况下,您可以使用一些启发式方法来确定形状何时是字符(您可以使用归一化区域、对象的位置(如果文本位于明确定义的位置等))。如果这还不够,您将需要处理更复杂的工作人员,例如形状特征提取算法和某种模式识别算法,例如多层感知器。
最后,这似乎是一项简单的任务,但根据图像的质量,它可能会变得更难。这里引用的算法可以很容易地在互联网上找到,也可以在某些库(如 OpenCv)中实现。
任何更多的帮助,只要问,如果我当然可以帮助 ;)
关于python - 将文本图像分离成组成字符图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972299/