How can I do segmentation using edges and fill

3 vues (au cours des 30 derniers jours)
Hello , I am having some trouble doing segmentation of a plate (already done a query about the same problem but had trouble processing more images with that because of the color ) What I am approaching now is leveraging the edges of the plate so I can fill it out then I can have a segmentation of it. But the problem is the noise off my desired area. I am leaving the image and the following code.
Heres the the image , I want to aim only over the deposited area ,
c=imread("https://ibb.co/LdV2V90");
Error using imread>get_format_info
Unable to determine the file format.

Error in imread (line 395)
fmt_s = get_format_info(fullname);
c=imresize(c,[743 1324]);
d=im2gray(c);
W= imgradient(d,"prewitt");
figure, imshow(log(W),[])
figure, imshow(log(W),[])
W=edge(W,"canny",0.091);
imshow(W)
z=bwareaopen(W,100);
imshow(z)
So i just get there ,the edges are not sow well marked ,splited by a horizontal middle line that split the upper and lower area, i wawnt to know how can i get the lines from the border and fill only the lower side.. Iam leaving more images in case,Thanks in advance

Réponse acceptée

Constantino Carlos Reyes-Aldasoro
Change from RGB to HSV and then segment via the colour space, that would give you differences between the background, the lower part and the upper part. More details in this book, chapters 3 and 6

Plus de réponses (0)

Produits


Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by