How to find nearby labels?

I have matrix I and I want to show that region with label 1 is neighbours with regions with label 2 and 4. Or region with label 2 is neighbour with region 1,4,5,and 3.
I =
1 1 1 2 3 3
1 1 2 2 3 3
4 4 4 5 5 3
4 4 4 4 5 5

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 25 de Jun. de 2019
Editada: Andrei Bobrov el 25 de Jun. de 2019

0 votos

I =[...
1 1 1 2 3 3
1 1 2 2 3 3
4 4 4 5 5 3
4 4 4 4 5 5];
N = unique(I);
n = numel(N);
out = cell(n,2);
for ii = 1:n
out(ii,:) = {ii, unique(I(bwdist(I == ii,'chessboard')==1))};
end
or
N = unique(I);
n = numel(N);
out = cell(n,2);
o3 = ones(3);
for ii = 1:n
lo = I == ii;
out(ii,:) = {ii, unique(I(imdilate(lo,o3) + lo == 1))};
end
out_as_table = cell2table(out,'v',{'number','neighbours'})

1 comentario

faten Ahmed
faten Ahmed el 21 de Jun. de 2021
Hi, Mr Andrei
I want to know the means of the functions on the above code. For example:
rgb2lab means Covert RGB to CIE 1967 L*a*b*
nume1 means ..........................
o3 means ...................
ones (3) means ...............................
cell(n,2); means .............
ii means ............
Io means ..............
I(imdilate(lo,o3) means .....................

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de Jun. de 2019

Comentada:

el 21 de Jun. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by