MATLAB Answers

0

How to find the center to contour angle in matlab

Atreyee Mondal さんによって質問されました 2019 年 11 月 7 日
最新アクティビティ darova
さんによって コメントされました 2019 年 11 月 8 日
Hi, I am completely new to matlab.
Please guide me how can I find center to contour angle (in degree) for each contour pixel?
Suppose I have an input image like bell-12.gif. Now, I know the centeroid of it. Say suppose[110,99]. I also know the boundary pixel array of bell-12.gif. Now I want to calculate the angle between centroid to each boundary pixel and store it into an array Angle. How can I find the Angle array?
I tried the following code by fixing one angle:
for i=1:lob-1
x = [cents1(1) cents1(2)]; % common point
y = [boundary(1,1),boundary(1,2)];
a = [cents1(1) cents1(2)]; % common point
b = [boundary(i,1) boundary(i,2)];
CCDANG(i)=(atan((y(2)-x(2))/(y(1)-x(1))) - atan((b(2)-a(2))/(b(1)-a(1)))) * 180/pi;
This gives me negative value for angle. I am not sure what exactly is the way to solve it.

  4 件のコメント

Atreyee Mondal 2019 年 11 月 7 日
@darova I modified my question and attached the relevant documents.
darova
2019 年 11 月 7 日
Where is the angle?
Atreyee Mondal 2019 年 11 月 7 日
kindly consider this diagram .

サインイン to comment.

1 件の回答

darova
回答者: darova
2019 年 11 月 7 日

  • Use edge to detect contour
  • find (x,y) coordinates (remember x - columns, y - rows)
  • coordinates need to be sorted (hint: divide them into 2 groups - x < x0 and x >= x0 then sort by y)
  • use interparc to interpolate data if needed
  • calculate angles

  2 件のコメント

Atreyee Mondal 2019 年 11 月 8 日
Thank you. I tried to find the angle by fixing a boundary point but is gives negative angular value . Here I am attaching my code:
for i=1:lob-1
x = [cents1(1) cents1(2)]; % common point
y = [boundary(1,1),boundary(1,2)];
a = [cents1(1) cents1(2)]; % common point
b = [boundary(i,1) boundary(i,2)];
CCDANG(i)=(atan((y(2)-x(2))/(y(1)-x(1))) - atan((b(2)-a(2))/(b(1)-a(1)))) * 180/pi;
darova
2019 年 11 月 8 日
I thought you want angle between tangents
123.png
Can't you just change the sign? Is the value correct? Only sign is wrong?

サインイン to comment.



Translated by