How to get x,y coordinates of each pixels in a connected component ??

8 ビュー (過去 30 日間)
nayomi ranamuka
nayomi ranamuka 2011 年 7 月 8 日
コメント済み: Walter Roberson 2021 年 4 月 6 日
Dear all,
I = imread('image.jpg');
I2 = im2bw(I) ;
st = regionprops( I2, 'PixelIdxList', 'PixelList');
We can get pixelId list and pixels of connected components as above. But I need to get the x,y coordinates of each pixels. Anybody can help me?
Thank you..

回答 (4 件)

Andrei Bobrov
Andrei Bobrov 2011 年 7 月 8 日
st = regionprops( I2, 'PixelList');
xy=cat(1,st.PixelList)
xy(:,2) = abs(xy(:,2) - size(I2,1)) + 1
plot(xy(:,1),xy(:,2),'g*')

Sean de Wolski
Sean de Wolski 2011 年 7 月 8 日
[y x] = find(I2)

Paulo Silva
Paulo Silva 2011 年 7 月 8 日
bw = imread('text.png');
L = bwlabel(bw);
s = regionprops(L, 'centroid');
XY=[s.Centroid];
ax=axes
hold on
imshow('text.png','Parent',ax)
plot(ax,XY(1:2:end),XY(2:2:end),'*')
  1 件のコメント
nayomi ranamuka
nayomi ranamuka 2011 年 7 月 8 日
This is useful to get coordinates from user interface.But I need to get coordinates from pixel Ids. But I don't know that it's possible or not.
Thank you

サインインしてコメントする。


Sergio Arango
Sergio Arango 2021 年 4 月 6 日
[x,y]=size(I2);
[~,y2]=size(st.PixelIdxList);
for i=1:y2
locs(i,1)=rem(st.PixelIdxList{1,i}(1),x);
locs(i,2)=fix(st.PixelIdxList{1,i}(1)/y)+1;
end
This code gives you the locations of the first pixel in each region. I don't know if this one's helpful, but I hope so :)
  1 件のコメント
Walter Roberson
Walter Roberson 2021 年 4 月 6 日
That looks to me as if it could be written in terms of ind2sub()

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by