Edge/Boundary extraction from the image

1 view (last 30 days)
I am trying to extrcat the outer boundary of the image attached here. Could someone help me with how to do this is in matlab.

Accepted Answer

Jonas
Jonas on 1 Jun 2021
Edited: Jonas on 1 Jun 2021
you can e.g. convert it to grayscale and then use the edge() function. there are many parameters you can try
after you got the binary edge image you may have a look into bwareafilt() function
  2 Comments
Turbulence Analysis
Turbulence Analysis on 1 Jun 2021
Thanks for the suggestion, Jonas,
Let's say my real image is saved in the matrix B, I tried as shown below .
However, I couldn't able to get the desired edge profile using bwareafilt() . I have also attached B.mat for your reference. Please provide your views
% Real image to rgb conversion
rgb1 = ind2rgb(B,jet(1024));
imagesc(rgb1);
% rgb to gray conversion
grayimage = rgb2gray(rgb1);
imagesc(grayimage);
Edge = edge(grayimage, 'sobel');
imagesc(Edge);
Jonas
Jonas on 1 Jun 2021
Edited: Jonas on 1 Jun 2021
i had a look into the image, maybe you try
rgb1 = ind2rgb(B,jet(1024));
redimage = rgb1(:,:,1);
imagesc(redimage);
Edge = edge(grayimage, 'sobel');
imagesc(bwconvhull(Edge));
this uses the red channel instead of gray image and forms a convex hull of the edge points
hiw exactly you may (pre)process your image depends also on where exactly is your outer bound is. is it the red part or already the yellowish part farther outside?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!