How can I find pixel coordinates of a perimeter in a binary image?
이전 댓글 표시
Hi
I have a binary image which I have extracted the perimeter with bwperim() function. Now that I have the perimeter image I am trying to extract the coordinates of pixels in this perimeter.Here are the images:


The white perimeter illustrated in the second image is where I want to find the coordinates. Any Suggestions is appreciated.
Thanks
댓글 수: 3
mahesh pawar
2017년 3월 3일
Per = bwperim(img);
[r,c]=size(Per);
p=1;
z = nnz(Per);
cord = zeros(z,2);
for i=1:r
for j=1:c
if (Per(r,c)) == 1
cord(p,1)=i;
cord(p,2)=j;
p=p+1;
p=p+1;
end
end
end
Image Analyst
2017년 3월 3일
편집: Image Analyst
2017년 3월 3일
mahesh, put this as an "Answer" below, not a comment up here. Also your entire code could be done in the single line
[rows, columns] = find(bwperim(img));
which is about the same at Nitin's accepted answer. However, neither that, nor your code will give the perimeter in a contiguous, connected way, like going clockwise around the region. It will give them on a column by column disconnected basis.
Cam S
2019년 7월 18일
yes exactly! how do you do that image analyst
채택된 답변
추가 답변 (2개)
Dishant Arora
2014년 4월 1일
If you have a single blob the above answer would suffice but in case you have multiple objects use bwboundaries. It gives you the coordinates of boundary pixels.
doc bwboundaries
댓글 수: 3
Milad
2014년 4월 1일
Dishant Arora
2014년 4월 1일
First one is the co-ordinates of boundary pixels and second is a labelled image. What output do you get from find()?? Post your code.
Image Analyst
2014년 4월 1일
I agree with Dishant that bwboundaries is what you want , not bwperim followed by find. The difference in sizes between find and bwperim is probably due to bwboundaries "cutting corners" as it makes a 45 degree path while perim will give you all the rows and columns of the "L". Also find probably does not "follow the boundary" like bwboundaries does. With find you are not gauranteed that the pixel at the kth index is next to the pixel at the (k+1)st index since find probably goes in column major order like most things in MATLAB.
Arriana Nwodu
2018년 8월 13일
0 개 추천
So which code is correct? I tried all the ways listed and it didn't work
카테고리
도움말 센터 및 File Exchange에서 Image Segmentation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!