MATLAB: Finding nearest label

labe

Hi I have the following matrix
I =
0 1 0 0 1 0
0 0 0 1 0 0
0 0 0 0 0 0
0 0 1 1 0 0
0 1 0 0 1 0
1 0 0 0 0 1
and
L=bwlabel(I)
L =
0 2 0 0 3 0
0 0 0 3 0 0
0 0 0 0 0 0
0 0 1 1 0 0
0 1 0 0 1 0
1 0 0 0 0 1
and I know a position say (4,1). How to find the nearest label from the position (4,1)

Best Answer

M = zeros(size(L));
M(4,1) = 1;
Md = bwdist(M);
Ll = logical(L);
mmn = min(Md(Ll));
[ii jj] = find((Md == mmn)&Ll);
out = L(ii,jj)