当前位置:  开发笔记 > 编程语言 > 正文

检测图像中的漫画对话气泡区域

如何解决《检测图像中的漫画对话气泡区域》经验,为你挑选了0个好方法。

我有一个漫画页面的灰度图像,其中包含几个对话气泡(=语音气球等),这些气泡是白色背景的封闭区域和内部包含文本的纯黑色边框,即类似的东西:

漫画图片样本

我想检测这些区域并创建一个掩码(二进制就可以),它将覆盖对话气泡的所有内部区域,即:

样本结果掩模图像

相同的图像,掩盖覆盖,完全清晰:

带透明遮罩覆盖的样本图像

所以,我对算法的基本思想是这样的:

    检测文本的位置 - 在每个气泡中至少生成一个像素.稍微扩张这些区域并应用阈值以获得更好的起跑地; 我做过这部分:

文字位置概述

    使用泛光填充或某种图形遍历,从在步骤1中检测为像素内部气泡的每个白色像素开始,但是处理初始图像,淹没白色像素(应该在气泡内)并停止暗像素(应该是边框或文本).

    使用某种binary_closing操作来移除气泡内的暗区(即与文本对应的区域).这部分工作正常.

到目前为止,第1步和第3步都有效,但我正在努力完成第2步.我目前正在使用scikit-image,我没有看到任何现成的算法,如洪水填充.显然,我可以使用像广度优先遍历这样的微不足道的东西,基本上就像这里建议的那样,但是在Python中完成时它真的很慢.我怀疑在ndimage或scikit-image 中复杂的形态学内容如binary_erosion或generate_binary_structure,但我很难理解所有形态学术语,基本上我如何用它来实现这样的自定义泛滥填充(即从第1步开始,在原始图像上工作图像并产生输出以分离输出图像).

我愿意接受任何建议,包括OpenCV等建议.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有