答案 0 :(得分:1)
我将介绍一些初步的预处理步骤,然后使用一些OpenCV内部方法,我们可以得到你想要的东西。
If the image is RGB or RGBA:
convert it to GRAY [use cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)]
Threshold the image to get a binary image with 2 ellipses. [cv2.threshold()]
Find contours in the binary image [cv2.findContours()]
Call the cv2.fitline() on each contour to get the line equation.
Apply the formula to get the angle between 2 lines.
有关轮廓的更多操作,请访问http://docs.opencv.org/trunk/dd/d49/tutorial_py_contour_features.html
答案 1 :(得分:1)
在我的头顶,我做到了这一点:(考虑到标签,我假设您使用opencv)
1-Use" findContours"命令获得界限'每个省略号的像素分别。
2 - 对于每个省略号,通过以下公式计算每对像素之间的距离(对于边界中的所有像素 - 在双环中):( D=sqrt((y1-y2)^2 + (x1-x2)^2)
)并找到显示最远距离的对。该对包括省略号长轴的两端。
3 - 使用两个提到的点,通过以下等式计算长轴相对于图像x轴的角度:
angle = arctan((y2-y1)/(x2-x1))
4 - 找到另一个省略号的角度并减去两个角度以找到它们之间的角度。