Finding pixels in connected component

13 views (last 30 days)
Muffin
Muffin on 27 Sep 2012
Hi
I need to know how to get access to any white pixel in a connected component. Are there any functions to get the coordinates of white pixels? With that I have to start a traversal algorithm to draw a bounding box around the connected component in the image. Please help me out. Thank you very much!

Accepted Answer

Image Analyst
Image Analyst on 27 Sep 2012
Edited: Image Analyst on 27 Sep 2012
Call regionprops(). You can ask for PixelIdxList which will give you the index (location) of every pixel in the blob. But if you just want the bounding box, no need to do some traversal algorithm, just ask regionprops() for the 'BoundingBox'. See my image segmentation tutorial for a demo: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
  3 Comments
Muffin
Muffin on 10 Oct 2012
Hey, thanks a lot, your tutorial was of help! I managed to draw my bounding boxes!

Sign in to comment.

More Answers (1)

Ryan
Ryan on 27 Sep 2012
Edited: Ryan on 27 Sep 2012
It sounds like you are looking for a perimeter of a shape as the "bounding box." If so, use bwboundaries to index the perimeter points. It pics the top most and then left most pixel as a starting point for the perimeter I believe.
[P C] = bwboundaries(A,'noholes'); % Records perimeter points
Perimeter = cat(2,P{1,1}); % Convert it to a vector
  3 Comments
Ryan
Ryan on 28 Sep 2012
If you are looking for the rectangular bounding box, then use Image Analyst approach. Utilize regionprops(), it's a fantastic analysis tool. If you are looking for the actual free-form perimeter of a shape, then bwboundaries() would be better.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by