What's wrong with this polyshape?

조회 수: 6 (최근 30일)
Joana Brito
Joana Brito 2020년 4월 23일
댓글: Ameer Hamza 2020년 4월 24일
The polyshape created has nothing to do with the original polygon: what am I doing wrong?
  댓글 수: 6
Joana Brito
Joana Brito 2020년 4월 24일
Muhammad, the poly2mask function should close the polygon automatically
Joana Brito
Joana Brito 2020년 4월 24일
Ameer, how do I do that? How do I scale the x and y axis in order for the pixels to match the shape?

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

답변 (1개)

Ameer Hamza
Ameer Hamza 2020년 4월 24일
Try this code. As I mentioned in my comment to your question that the polygon is just 3 pixels wide. In this code, I scaled the coordinate to make it 50 pixels wide. Now it should be visible.
x = [106.2620, 107.2080, 106.5060, 104.6750, 105.7130];
y = [666.0000, 670.0000, 644.0000, 628.0000, 656.0000];
x = (x - min(x))./(max(x)-min(x))*50+100;
BW=poly2mask(x, y, 800, 800);
imshow(BW)
  댓글 수: 4
Joana Brito
Joana Brito 2020년 4월 24일
Thank you for you sugestions! But the goal is to find an ellipse which encloses the polygon and for that finding the major and minor axes with regionprops
I did it like you said and now my shape is rotated, for some reason
Ameer Hamza
Ameer Hamza 2020년 4월 24일
The polygon is not rotated, it is just drawn upside down because the imshow() function makes a y-axis, which increases in the downward direction, whereas plot() make y-axis increasing in the upward direction. Apart from appearance, the vertex coordinates are the same.
If you want to do this with regionprops, then you will need to apply some type scaling before making the poly2mask and then apply reverse scaling at the end. I recommend avoiding the image processing toolbox function because it is really a geometry problem, and there are other available tools to solve this problem efficiently. For example, check this FEX submission: https://www.mathworks.com/matlabcentral/fileexchange/3215-fit_ellipse. It fit an ellipse to a set of data points and directly outputs the major and minor axes.

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by