Edge/Boundary extraction from the image

1 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

Jonas
Jonas il 1 Giu 2021
Modificato: Jonas il 1 Giu 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 Commenti
Turbulence Analysis
Turbulence Analysis il 1 Giu 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 il 1 Giu 2021
Modificato: Jonas il 1 Giu 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?

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by