close lines after edge detection

20 次查看(过去 30 天)
Elad
Elad 2012-5-28
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 个评论
Stephen
Stephen 2012-5-29
what was the original image?
Elad
Elad 2012-5-30
Its fungi on a leaf , but this image is after a few manipulations allready.

请先登录,再进行评论。

回答(2 个)

Image Analyst
Image Analyst 2012-5-28
Other options would be convex hull or restricted convex hull, or Sean's shrink wrap: http://www.mathworks.com/matlabcentral/fileexchange/29175-shrinkwrap
  4 个评论
Image Analyst
Image Analyst 2019-8-10
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.
Stelios Fanourakis
Stelios Fanourakis 2019-8-21
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?

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2012-5-28
imfill( YourBWArray, 'holes' )
  3 个评论
Walter Roberson
Walter Roberson 2012-5-28
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.
Elad
Elad 2012-5-29
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

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by