OpenCV Python: Draw minAreaRect (RotatedRect не реализован)
Есть ли какие-нибудь вспомогательные методы для рисования вращающегося прямоугольника, который возвращается cv2.minAreaRect() предположительно как ((x1,y1),(x2,y2),angle)
? cv2.rectangle() не поддерживает угол.
И так как вернувшийся кортеж не относится к классу "RotatedRect" (потому что он, похоже, не реализован в привязках Python), нет метода points()
, как показано в учебнике С++ "Создание ограничивающих полей и эллипсов для контуров" .
Как можно рисовать вращающийся прямоугольник из линий - вращаться вокруг центральной точки или заданной первой точки?
Ответы
Ответ 1
Ха-ха, у меня был один и тот же вопрос, и я нашел следующее
http://opencvpython.blogspot.in/2012/06/contours-2-brotherhood.html
Python OpenCV Box2D
rect = cv2.minAreaRect(cnt)
box = cv2.cv.BoxPoints(rect) # cv2.boxPoints(rect) for OpenCV 3.x
box = np.int0(box)
cv2.drawContours(im,[box],0,(0,0,255),2)
Он отлично работает для меня.