Azzera filtri
Azzera filtri

Border detection out of regular shape

2 visualizzazioni (ultimi 30 giorni)
Albert
Albert il 8 Apr 2022
Commentato: Albert il 11 Apr 2022
Hi, I have this shape in the plot, but I want to detect the 4 tails sticking out of the square in order to remove them. How could I detect them? I only have a single vector of points (x,y) which are in the plot. Attached is the variable containing the points.
Thanks!
  4 Commenti
Les Beckham
Les Beckham il 8 Apr 2022
If you attach your data as a mat file using the paperclip (either edit your question or add it in a comment), it will make it easier to help you.
Albert
Albert il 8 Apr 2022
I have attached the mat file!

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 8 Apr 2022
Modificato: Matt J il 8 Apr 2022
load data_points
data0=data;
shp=alphaShape(data,0.9);
[~,V]=boundaryFacets(shp);
shp=polyshape(V,'Simplify',true);
Warning: Polyshape has duplicate vertices, intersections, or other inconsistencies that may produce inaccurate or unexpected results. Input data has been modified to create a well-defined polyshape.
for i=[-1,sqrt(2)]
shp=polybuffer(shp,i,'Joint','square');
end
tf=shp.isinterior(data);
data=data(tf,:);
plot(data0(:,1),data0(:,2),'o',data(:,1),data(:,2),'.r'); hold on
  3 Commenti
Matt J
Matt J il 8 Apr 2022
Yes, or you could use isinterior() as in my now modified solution.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Line Plots in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by