How do we know what are the superpixels connected to each other ?

6 views (last 30 days)
I am using SLIC superpixel algorithm. How to create adjacency matrix for superpixels? How do we know what are the superpixels connected to each other?
Thanks in advance

Answers (2)

Image Analyst
Image Analyst on 23 Apr 2017
You can use GLCM - the Gray Level Cooccurrence Matrix, done by graycomatrix(). It tells you which gray levels are next to which other gray levels. I attached a demo.
  2 Comments
Ad
Ad on 23 Apr 2017
I have used GLCM. I got result like this.
graystats.Correlation,0.056197194015968
graystats.Energy,0.985076430158353
graystats.Homogeneity,0.245757011433993;
graystats.Contrast,0.992415460185401
Q. How do I know the connected superpixels?
GLCMS2= graycomatrix(rgbtogray);% it is accepting 2D images only
graystats = graycoprops(GLCMS2,{'all'});
Image Analyst
Image Analyst on 23 Apr 2017
You don't need the stats. Just look at the matrix and see what locations have non-zero pixel pair counts. It says what label is next to what other label.
2 is next to 3, 4, 5, and 6
3 is next to 2, 4, 5, 6, and 7
4 is next to 2, 3, 5, and 6
and so on.

Sign in to comment.


Casio Uploader
Casio Uploader on 9 Jun 2018
Edited: Casio Uploader on 9 Jun 2018
glcms=graycomatrix(L); % 'L' is Labled Image output of SLIC superpixel algorithm
kkkk=glcms(:,SupNum); %if you want to find neibours of 1,then input SupNum=1 in both places
[rrrr,~]=find(kkkk>0); aa=find(rrrr==SupNum);
rrrr(aa)=[];
%%rrrr is output matrix which contains the neighbours of 1(or your desired one)
N.B.:It will give you just right directions neighbour information,to get all direction use 'Offset' optiom for graycomatrix() function.See: https://in.mathworks.com/help/images/ref/graycomatrix.html

Community Treasure Hunt

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

Start Hunting!