二值图像距离变换函数
[算法说明]
二值图像的距离变换实际上就是将二值图像转换为灰度图像,在二值图像中我们将图像分为目标图像和背景图像,假设目标图像像素值为1,即为白色,背景像素为0即为黑色。在转换后的幅灰度图像中,每个连通域的各个像素点的灰度级与该像素点到其背景像素的最近距离有关。其中灰度级最大点的集合为目标图像的骨架,就是目标图像中心部分的像素的集合,灰度级反应了背景像素与目标图像边界的影响关系。用数学语言表示如下:
假设二值图像I包含一个连通域S,其中有目标O和背景B,距离图为D,则距离变换定义如下:
其中disf()为距离函数,如果用欧拉距离公式表示,如下:
其中p,q分别为目标和背景图像像素点。
距离变换的具体步骤为:
1,将图像中的目标像素点分类,分为内部点,外部点和孤立点。
以中心像素的四邻域为例,如果中心像素为目标像素(值为1)且四邻域都为目标像素(值为1),则该点为内部点。如果该中心像素为目标像素,四邻域为背景像素(值为0),则该中心点为孤立点,如下图所示。除了内部点和孤立点之外的目标区域点为边界点。
内部点 孤立点
Fig.1内部点与孤立点图示
2,计算图像中所有的内部点和非内部点,点的集合分别记为S1,S2。
3,对于S1中的每一个内部点(x