Remove artefact when dilating Image
4 views (last 30 days)
Show older comments
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)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/159668/image.png)
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.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/159669/image.png)
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
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
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!