close lines after edge detection

Hi all, After edge detection and adding some circular object, I like to close the lines and fill each area. this is an example : http://i48.tinypic.com/35hq0cg.jpg
is there a way to close the lines without dilation or morfological operations? those would modify the accuracy of the detection.

2 Comments

what was the original image?
Its fungi on a leaf , but this image is after a few manipulations allready.

Sign in to comment.

Answers (2)

Image Analyst
Image Analyst on 28 May 2012
Other options would be convex hull or restricted convex hull, or Sean's shrink wrap: http://www.mathworks.com/matlabcentral/fileexchange/29175-shrinkwrap

4 Comments

Thanks, I'll try it.
Hi.
Did you manage to solve your issue? Image Analyst, is there a way to apply the convex hull to pixels?
Using a convex hull may not always be a good choice - it won't give the right shape in some situations. For a banana shape, it convex hull would give a D-shape. One must really look at the image and not just make blanket generalizations.
Image Analyst. I want to apply convex hull to a closed contour shape. Thus, the convex hull shape is more or less defined when applied to a closed contour. Isn't it?

Sign in to comment.

imfill( YourBWArray, 'holes' )

3 Comments

Thanks but not all lines are closed, that's the problem.
The example where the line leaves a gap: where should it attach to the main body? If the "accuracy of the detection" is an issue, every choice is wrong, unless there is external information available.
Yes, you are right , I guess I would like to complete the closing in a circular way.
I found this answer that works sometimes, if the gap is small:
http://www.mathworks.com/matlabcentral/answers/23467-filling-the-objects-found-by-canny-edge

Sign in to comment.

Asked:

on 28 May 2012

Community Treasure Hunt

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

Start Hunting!