How to find the center to contour angle in matlab
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
darova
el 7 de Nov. de 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 comentarios
darova
el 8 de Nov. de 2019
I thought you want angle between tangents
![123.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/247377/123.png)
Can't you just change the sign? Is the value correct? Only sign is wrong?
Ver también
Categorías
Más información sobre Get Started with MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!