to find length of edges

is there any function for finding out the length of the edges and average number of edges...?actually i hav to determine the edges using canny edge detection method.So how can i find out the length and average number of edges?

1 Comment

The number of edges averaged over what?

Sign in to comment.

 Accepted Answer

The edge image returned by edge() is a logical image. So to get the length of all the edges, you do
lengthOfEdges = sum(edgeImage);
To get the number of edges:
[labeledImage numberOfEdges] = bwlabel(edgeImage);
To get average edge length (which you didn't ask for but I'm giving you anyway in case you need it), it's
averageEdgeLength = lengthOfEdges / numberOfEdges;
To get the average number of edges you have to define (like Walter asked) what you're averaging over.

2 Comments

I think you mean sum(edgeImage(:)) or sum(sum(edgeImage))
Correct - good catch!

Sign in to comment.

More Answers (1)

David Young
David Young on 10 Jan 2012

0 votes

Guessing a little, but I suspect that the following functions will be sufficient:
  • sum
  • bwlabel
  • regionprops

Community Treasure Hunt

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

Start Hunting!