help me get the points of the mask

조회 수: 7 (최근 30일)
kunal
kunal 2025년 5월 9일
답변: Matt J 2025년 7월 6일
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
kunal
kunal 2025년 5월 13일
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 2025년 5월 13일
@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.

댓글을 달려면 로그인하십시오.

답변 (2개)

Image Analyst
Image Analyst 2025년 5월 9일
편집: Image Analyst 2025년 5월 9일
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
kunal
kunal 2025년 5월 14일
this consider the image as an whole but i want to seperate the pieces into part of rectangle
Image Analyst
Image Analyst 2025년 5월 14일
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
Matt J 2025년 7월 6일
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

카테고리

Help CenterFile Exchange에서 Read, Write, and Modify Image에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by