1. 距离变换的目的
距离变换提供了像素与某个图像子集(可能表示物体或某些特征)的距离度量。
2. 距离变换算法的输入输出
输入:二值图;输出:灰度图
3. 距离变换实例
一个比较好的例子,就是目标物体是白色圆形,背景为黑色,源图像如下图所示,
其中背景(黑色部分)和目标物体(白色部分)两个集合都是已经确定的,现在度量的是目标物体到背景的距离。经过距离变换后的图像是什么样的呢?如下图所示,
理解:从距离变换后的图中可以看出,离背景部分距离越远,该点也就越亮(像素值越大)。那么这个性质有什么用呢?可以想象一下,在黑色的背景中的任意一个物体,那个经过距离变换后最亮的像素点不就可以大致看作这个物体的形心吗!这个形心可以为后续的图像处理提供信息,比如作为种子区域生长法的初始种子。
细心的同学可能发现,距离变换后的图像有几道比较亮的直线,不符合设想啊,按理说,应该是一个无数个(理想情况)同心圆组成的图案啊。产生这一现象和下面我要介绍的内容——距离变换的具体计算有关。
4. 距离变换算法
距离变换实际就是求一个点到点集合的最近距离,那么首先就是来确定这个距离。常用的距离公式有欧式距离、曼哈顿距离等等,不太了解的同学可以自行百度,具体使用哪种距离进行度量,需要结合自己的实际情况来选择。
直观计算
确定了距离公式之后,根据直观的理解应该怎么计算呢?还是拿上面的例子进行说明,B代表着黑色背景的集合,里面有 b 1 , b 2 , b 3 b_1,b_2,b_3 b1,b2,b3……等一些点;W代表着白色物体的集合,里面有 w 1 , w 2 , w 3 w_1,w_2,w_3 <