How to find nearby labels?

2 vues (au cours des 30 derniers jours)
faran
faran le 25 Juin 2019
Commenté : faten Ahmed le 21 Juin 2021
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

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 25 Juin 2019
Modifié(e) : Andrei Bobrov le 25 Juin 2019
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 commentaire
faten Ahmed
faten Ahmed le 21 Juin 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 .....................

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by