文末附分别基于C++和python实现的相关测试代码下载链接
图 1. 左:原始的图像。中心:阈值和倒置。右:孔被填充。
在本教程中,我们将学习如何填充二值图像中的孔洞。考虑图 1 中左侧的图像。假设我们想要找到一个将硬币与背景分开的二进制掩码,如右图所示。在本教程中,包含硬币的圆形区域也将被称为前景。
请注意,硬币的边界是黑色的,与白色背景截然不同。因此,我们使用简单的图像阈值来将边界与背景分开。换句话说,我们说强度高于某个值(阈值)的像素是背景,其余是前景。中心图像显示了这个阈值图像(黑色代表背景,白色代表前景)。不幸的是,即使边界被很好地提取出来(它是纯白色),硬币内部的强度与背景相似。因此,阈值操作无法将其与背景区分开来。我们如何用白色填充圆形边界内的所有像素?