霍夫变换的计算角度

时间:2020-08-25 14:32:45

标签: python opencv

我正在计算风力涡轮机上叶片的角度。
现在我只得到90到-90之间的角度。但是我希望能够以360度计算角度。

我有点卡住;我试图反转0到-90度字段中的角度,但我似乎无法使其正常工作。我正在使用openCV HoughLinesP转换来获取线条,也许常规转换更适合此应用程序,但我不知道如何使线条有限。 我对openCV和phyton还是比较陌生,因此将不胜感激。

Detected lines on wind turbine

编辑:根据bfris的要求,这里是代码(如果您需要更多,请告诉我)

blades = np.copy(edges)

blades = cv2.HoughLinesP(blades, 1, np.pi / 180, 50, minLineLength=25, maxLineGap=20)

for blade in blades:
    x1, y1, x2, y2 = blade[0]
    angle = np.arctan2(y2 - y1, x2 - x1) * 180 / np.pi
    if angle == -90 and angle <= -85:
        cv2.line(img, (x1, y1), (x2, y2), (128, 0, 255), 2) #Pink
        print(angle)
    elif angle > -80 and angle < -50:
        cv2.line(img, (x1, y1), (x2, y2), (0, 255, 255), 2) #Yellow
        print(angle)
    #one blade
    elif angle > -40 and angle < 0:
        cv2.line(img, (x1, y1), (x2, y2), (255, 0, 0), 2) #Blue
        #print(x1,y1,x2,y2)
        print(angle)
    #second blade
    elif angle > 0 and angle < 50:
        cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2) #Green
        print(angle)
    elif angle > 55 and angle <= 75:
        cv2.line(img, (x1, y1), (x2, y2), (0, 128, 255), 2) #Orange
        print(angle)

0 个答案:

没有答案