距离变换是二值图像处理与操作中常用手段,在骨架提取,图像窄化中常有应用。距离变换的结果是得到一张与输入图像类似的灰度图像,但是灰度值只出现在前景区域。并且越远离背景边缘的像素灰度值越大。
根据度量距离的方法不同,距离变换有几种不同的方法,假设像素点p1(x1, y1), p2(x2, y2)计算距离的方法常见的有:
-
欧几里德距离(常用的距离),是点和点之间坐标的均方根。通常情况下人们所说到的距离,指的就是欧式距离:
Distance = -
曼哈顿距离(City Block Distance),又称街区距离,表示对点与点之间在不同维度上的绝对距离的叠加,实质上是从一个点到另外一个点的步数,并不能走斜线, 公式如下:Distance = |x2-x1|+|y2-y1|
-
象棋格距离(Chessboard Distance),被用来衡量向量空间中两个点之间的距离,它是曼哈顿距离的加权版本。实质上是凑成一个正方形的对角线, 公式如下:Distance = max(|x2-x1|,|y2-y1|)
一旦距离度量公式选择,就可以在二值图像的距离变换中使用。一个最常见的距离变换算法就是通过连续的腐蚀操作来实现,腐蚀操作的停止条件是所有前景像素都被完全腐蚀这样根据腐蚀的先后顺序,我们就得到各个前景像素点到前景中心骨架像素点的距离。根据各个像素点的距离值,设置为不同的灰度值。这样就完成了二值图像的距离