如何将有符号距离函数恢复为二进制图像



所以我使用 MATLAB 的 bwdist 函数来获取二进制图像的距离变换。我的问题是,如何将有符号距离矩阵转换回二进制图像?

D = bwdist(BW)

具体来说,是否有可以从 BW -> D 返回的转换?

如果D = bwdist(BW)BW0 = D<=0怎么样?

请考虑bwdist文档中的第一个示例:

bw = zeros(5,5); bw(2,2) = 1; bw(4,4) = 1
bw =
     0     0     0     0     0
     0     1     0     0     0
     0     0     0     0     0
     0     0     0     1     0
     0     0     0     0     0
[D,IDX] = bwdist(bw)
D =
    1.4142    1.0000    1.4142    2.2361    3.1623
    1.0000         0    1.0000    2.0000    2.2361
    1.4142    1.0000    1.4142    1.0000    1.4142
    2.2361    2.0000    1.0000         0    1.0000
    3.1623    2.2361    1.4142    1.0000    1.4142

要取回您的二进制图像,您只需要距离变换中的点等于零(即在原始bw中的非零像素上):

>> bw0 = D<=0
bw0 =
     0     0     0     0     0
     0     1     0     0     0
     0     0     0     0     0
     0     0     0     1     0
     0     0     0     0     0
>> isequal(bw,bw0)
ans =
     1

最新更新