二值图像的距离变换
距离变换提供图像中点间距的一种指标或度量。bwdist
函数计算二值图像中设置为 off
(0
) 的每个像素与最近的非零像素之间的距离。
bwdist
函数支持多种距离度量。
距离度量
距离度量 | 描述 | 示意图 |
---|---|---|
欧几里德 | 欧几里德距离是两个像素之间的直线距离。 |
|
City block | City block 距离度量基于 4 连通邻域来测量像素之间的路径。边缘接触的像素相隔 1 个单位;以对角方式接触的像素相隔 2 个单位。 |
|
棋盘 | 棋盘距离度量基于 8 连通邻域来测量像素之间的路径。边缘或角接触的像素相隔 1 个单位。 |
|
准欧几里德 | 准欧几里德度量测量沿一组水平、垂直和对角线段的总欧几里德距离。 |
|
此示例创建一个包含两个相交圆形目标的二值图像。
center1 = -10; center2 = -center1; dist = sqrt(2*(2*center1)^2); radius = dist/2 * 1.4; lims = [floor(center1-1.2*radius) ceil(center2+1.2*radius)]; [x,y] = meshgrid(lims(1):lims(2)); bw1 = sqrt((x-center1).^2 + (y-center1).^2) <= radius; bw2 = sqrt((x-center2).^2 + (y-center2).^2) <= radius; bw = bw1 | bw2; figure imshow(bw)
要计算该二值图像的补码的距离变换,请使用 bwdist
函数。在距离变换的图像中,请注意两个圆形区域的中心是白色的。
D = bwdist(~bw); figure imshow(D,[])