填充字符图像中的白洞的算法
信息处理
图像处理
matlab
Python
算法
图像分割
2022-02-06 04:25:27
1个回答
根据博客文章 - Paint.Net 4.0 中的油漆桶(视频),我可以看出它使用一些边缘检测来处理分段平滑区域内的相似颜色。油漆桶工具文档
中提供了更多信息。
通常它可以实现的方式是通过定义颜色度量。一种颜色与另一种颜色的距离。如果在公差范围内,则在掩码范围内。
- 形态学操作可以填补小洞。
- 我不确定,但实现类似的东西不会太难。
- 可能他们将 RGB 数据转换为HSL/HSV 颜色模型。然后只需根据参考点与周围颜色之间的距离创建一个蒙版。现在掩码创建一个要填充的逻辑(黑白)掩码。
在Paint.NET的情况下,算法应该类似于Flood Fill。
所以步骤是:
- 将图像转换为选择的颜色模型(HSV / HSL 甚至 LAB)。
- 使用颜色模型上的颜色相似度(距离函数)生成蒙版。距离函数由某个阈值参数参数化。
- 使用类似 Flood Fill 的算法使用目标颜色填充蒙版中的像素。掩码基本上是 Flood Fill 操作的停止条件。
在 MATLAB 中,您有imfill()
Flood Fill。
对于更高级的东西,您可以使用自适应形态功能,例如Active Contours和Morphological Snakes。
其它你可能感兴趣的问题