2013-08-13 17 views
16

cv2.minAreaRect() tarafından döndürülen döndürülmüş bir dikdörtgenin, muhtemelen ((x1,y1),(x2,y2),angle) olarak gönderilmesi için herhangi bir yardımcı yöntem var mı? cv2.rectangle() bir açıyı desteklemiyor. Ve C++ öğretici "Creating Bounding rotated boxes and ellipses for contours¶" gösterildiği gibi, hiçbir points() yöntem yoktur (Python bağlamaları gerçeklenemez görünüyor çünkü) döndürülür Başlık "RotatedRect" sınıfının olmadığı için.OpenCV Python: Draw minAreaRect (RotatedRect uygulanmadı)

döndürülmüş bir dikdörtgen hatlarından çekilebilir nasıl

- belirli bir merkezi nokta veya birinci noktası etrafında döndürmek?

cevap

34

Haha, sadece aynı soru vardı ve benim için mükemmel çalışıyor şu

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) 

bulundu.

+18

@handle: Gelecekteki okuyucular için ek bilgiler: Yukarıdaki cevabı OpenCV 2.4.x sürümü ile en iyi seçenektir. OpenCV 3.x yakında yayınlanacak. Aynı işlev için '' cv2.boxPoints '(' dır) 'işlevine sahiptir. '' cv2.cv.BoxPoints (rect) '' o zaman kaldırılacak. –