MATLAB: How to extract connected chains in canny edge image? Specifically asking, how would I extract connected chains when there are so many edges are available, so that I could come up with top 10 results (top 10 long edges).

Computer Vision Toolboximage processingImage Processing Toolbox

Best Answer

Would regionprops do the trick?
----
Read the image:
I = imread('cameraman.tif');
Compute edges and create label matrix:
J = edge(I,'canny');
L = bwlabel(J);
Extract properties for connected components:
s = regionprops(J,'PixelIdxList');
Sort based on number of pixels in each connected component:
d = cellfun('length',{s(:).PixelIdxList}); %total number of pixels in each region
[~,order] = sort(d,'descend');
Show top-10 connected components:
K = ismember(L,order(1:10)); %only show the top 10 edges