How to find the center to contour angle in matlab

6 vues (au cours des 30 derniers jours)
Atreyee Mondal
Atreyee Mondal le 7 Nov 2019
Commenté : darova le 8 Nov 2019
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 commentaires
darova
darova le 7 Nov 2019
Where is the angle?
Atreyee Mondal
Atreyee Mondal le 7 Nov 2019
kindly consider this diagram .

Connectez-vous pour commenter.

Réponses (1)

darova
darova le 7 Nov 2019
  • 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 commentaires
Atreyee Mondal
Atreyee Mondal le 8 Nov 2019
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
darova le 8 Nov 2019
I thought you want angle between tangents
123.png
Can't you just change the sign? Is the value correct? Only sign is wrong?

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by