所以我使用 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