CV2 minAreaRect () возвращаемый угол отличается от перекоса блока, получаемого из boxPointers () - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь обрезать контурное изображение с повернутым углом и использую следующий код,

_, cnts, _ = cv2.findContours(img, mode, method)
cnts = sorted(cnts, key = cv2.contourArea, reverse = True)[:maxCnts]
for c in cnts:
    rect = cv2.minAreaRect(c)
    box = cv2.boxPoints(rect)
    box = np.int0(box)
    cv2.drawContours(img_box, [box], 0, 255, 2)
    print("findCnts: box:", box)
    cv2.imshow("Min Area Rect", img_box)
    cv2.waitKey(0)

Когда я проверил свой интересующий контур из «прямоугольника», я получил угол поворота -0,0, но из drawContours () я обнаружил, что прямоугольник минимальной области имеет явный перекос и из координат точки «прямоугольника» я Можно рассчитать угол перекоса около 10 градусов, это проблема автоматического поворота обрезанного изображения. Как рассчитать угол, кроме вычисления угла «прямоугольника», чтобы получить угол из minAreaRect () напрямую?

...