how to fill the interior of a closed surface?

조회 수: 20 (최근 30일)
M.S. Khan 2021년 2월 5일
댓글: Star Strider 2021년 2월 7일
hi dear community members,
please guide me, i have a closed boundary surface. i want to fill the interior.
i am using for loop but i could not succeed.
regards

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

채택된 답변

Star Strider 2021년 2월 5일
편집: Star Strider 2021년 2월 5일
Try this:
figure
[c,h] = contour(D, [1 1]*0.5);
Levels = h.LevelList;
idx = find(c(1,:) == Levels(1));
Len = c(2,idx);
for k = 1:numel(idx)
x{k} = c(1,idx+1:Len(k));
y{k} = c(2,idx+1:Len(k));
end
[b,v] = boundary(x{1}(:), y{1}(:)); % Introduced In R2014b
figure
fill(x{1}(b), y{1}(b), 'r')
title('Boundary')
figure
fill(x{1}, y{1}, 'g')
title('Filled Contour')
It uses the contour function to extract the outlines of the triangle, then first boundary (R2014b and later) to fill the triangle, and then a second one to fill the contour. Choose the one you want.
For figure(1):
.
EDIT — (5 Feb 2021 at 03:06)
The ‘v’ output of boundary is the area it encloses. I assume it corresponds to pixels, however I cannot determine that. Nothing in the original Question mentioned anything about pixels. It might be possible to use ‘x{1}(b)’ and ‘y{1}(b)’ with the original data to outline tha area in the image. The ‘y’ axis direction in the image will be reversed from the plot direction.
댓글 수: 8이전 댓글 6개 표시이전 댓글 6개 숨기기
M.S. Khan 2021년 2월 7일
Thanks Star Strider. Regards.
Star Strider 2021년 2월 7일
As always, my pleasure!

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

추가 답변 (1개)

David Hill 2021년 2월 5일
편집: David Hill 2021년 2월 5일
pgon = polyshape([0 0 1 3], [0 3 3 0]);
a=plot(pgon);
a.FaceColor=[0 1 0];
댓글 수: 3이전 댓글 1개 표시이전 댓글 1개 숨기기
David Hill 2021년 2월 5일
Look at the documentation. Polyshape can handle irregular shapes but the coordinates need to be in order.
doc polyshape
M.S. Khan 2021년 2월 5일
Dear David, i mean, using a.FaceColor=[0 1 0]; we got a colored polygon. can we count how many pixels were used in colored area.

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

카테고리

Help CenterFile Exchange에서 Elementary Polygons에 대해 자세히 알아보기

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by