help me get the points of the mask

6 visualizaciones (últimos 30 días)
kunal
kunal el 9 de Mayo de 2025
Respondida: Matt J el 6 de Jul. de 2025
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
kunal
kunal el 13 de Mayo de 2025
ah yes, it's ok if it overlaps or not, sorry if this is confusing. As you can see every part or side i have enclosed it in perfect square/rectangle or four point polygon and where the mask is continuous it also shares 2 point of edges
Image Analyst
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.

Iniciar sesión para comentar.

Respuestas (2)

Image Analyst
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
kunal
kunal el 14 de Mayo de 2025
this consider the image as an whole but i want to seperate the pieces into part of rectangle
Image Analyst
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.

Iniciar sesión para comentar.


Matt J
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)
p =
polyshape with properties: Vertices: [20×2 double] NumRegions: 1 NumHoles: 2
[x,y]=boundary(p);
hold on
plot(x,y,'og','MarkerFaceColor','y');hold off

Categorías

Más información sobre Read, Write, and Modify Image en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by