python - 将文本图像分离成组成字符图像

标签 python image-processing python-imaging-library

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

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

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

为了提高我的 Python 技能并熟悉一些可用的库,所以我正在使用 Python Imaging Library (PIL) ,但我也看过 OpenCV。


示例图片:

This is some text

最佳答案

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

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

之后,您可以使用标记算法来识别构成形状的每个“孤岛”像素(在本例中为每个字符)。

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

最后,这似乎是一项简单的任务,但根据图像的质量,它可能会变得更难。这里引用的算法可以很容易地在互联网上找到,也可以在某些库(如 OpenCv)中实现。

任何更多的帮助,只要问,如果我当然可以帮助 ;)

关于python - 将文本图像分离成组成字符图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972299/

相关文章:

python - 每当我进行 OOP 时,“超出最大递归深度”

python - 在 python 中计算图像的特征向量

opencv - Android:平滑随机形状位图的边缘

python - 找不到 HTML 模板

python - 如何将多个二维数组作为输入传递给 tensorflow 服务 api?

python-3.x - PyInstaller 可执行文件不显示 GUI

python - 如何减少 PIL 中的 png 图像文件大小

python - 如何读写透明的 GIF 动画

python - 尝试将 dict 写入文件时出现 KeyError [Python]

opencv - 图像处理中的形状检测