2014-02-12 34 views

回答

2

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

考虑从bwdist documentation第一个例子:

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 
+0

由于它是一个带符号的距离转换,所以您希望距离转换中**小于或等于零的点。零像素将只给你连接组件的边缘。 – Papouh

+0

好点。快速的答案...感谢您的更正。 – chappjc