MATLAB Answers

Remove artefact when dilating Image

10 views (last 30 days)
Jason
Jason on 10 Jan 2017
Commented: Jason on 16 Jan 2017
Hi. I have a hexagonal grid that I have managed to locate the location of the maximum in each feature (with the kind help of Walter & I.A)
I next want to use these locations to then get the weighted centroid to be more accurate.(i.e. use them as seeds)
But to prepare for RegionProps, I create binary image that I dilate slightly:
se = strel('disk',2);
binary=imdilate(binary,se,'same');
This works except for a little artifact shown by the redline.
I really need at least 1 pixel perimeter round the seeding locations to ensure I can perform a weighted centroid calc, but the artefact treats the 2 joined objects as one and its centroid is incorrectly position in the middle of the two blobs.
Is there away where I can break up the joined blobs but still retain enough pixels to allow centroid calc.
Thanks for any help Jason

Answers (2)

Changoleon
Changoleon on 13 Jan 2017
Edited: Changoleon on 13 Jan 2017
So what's the problem? that two objects are connected to each other? if yes, use the function imopen.
What it will do is it will erode the image first with a certain limit (you chose this limit) and then will dilate it again. The tiny part which is making two objects as one, will be removed
  1 Comment
Jason
Jason on 16 Jan 2017
Hi, Im not able to use any SE in imopen to get this to work. Are there any other suggestions please.
Thanks

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!