help me get the points of the mask
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have shapes like this and i want the four points like what i have marked and the enclosing are i drew with lines


6 comentarios
Image Analyst
el 13 de Mayo de 2025
@kunal did you not understand my Answer below or did you not even see it (scroll down)? I didn't see any response whatsoever to it.
Respuestas (2)
Image Analyst
el 9 de Mayo de 2025
Editada: Image Analyst
el 9 de Mayo de 2025
You can find a wealth of information online just by Googling "Minimum perimeter polygon". Yes, it's a thing. And there is much research and published papers and algorithms on it.
"In digital image processing, a minimum perimeter polygon (MPP) is a technique to represent the boundary of a shape or object using a polygon with the fewest possible edges while maintaining the essential shape characteristics. It's a form of polygonal approximation where the goal is to approximate a digital boundary with a polygon with the smallest perimeter."
Also see the PDF I've attached.
Sorry, I don't have any MATLAB code for it but you could try asking MATLAB's AI engine to write it for you:
You might also look at the LIDAR toolbox : https://www.mathworks.com/help/lidar/
See examples at:
2 comentarios
Image Analyst
el 14 de Mayo de 2025
Each "blob" in the image is considered a separate, distinct polygon. You can get the minimum points to define each using the concepts of minimum perimeter polygon.
If you have a single blob that is shaped like an L, the min perimeter polygon will define the whole L shape but it will not split the two L into separate blobs. Not sure why you'd really need that though instead of just a single polygon.
Matt J
el 6 de Jul. de 2025
You can try bwlpolyshape(), downloadable from,
which will fit a polyshape to the mask, subject to a distance tolerance distTol. You will have to do some postprocessing to consolidate some of the spurious vertices.
S=structfun(@logical,load('my_masks'),'uni',0);
p=bwlpolyshape(S.a2,distTol=15,refine=0,Visualize=true)
[x,y]=boundary(p);
hold on
plot(x,y,'og','MarkerFaceColor','y');hold off
0 comentarios
Ver también
Categorías
Más información sobre Read, Write, and Modify Image en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
