::
x,y,w,h = cv2.boundingRect(cnt)
- img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
+ cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
7.b. Rotated Rectangle
-----------------------
::
rect = cv2.minAreaRect(cnt)
- box = cv2.boxPoints(rect)
+ box = cv2.cv.BoxPoints(rect)
box = np.int0(box)
- im = cv2.drawContours(im,[box],0,(0,0,255),2)
+ cv2.drawContours(img,[box],0,(0,0,255),2)
Both the rectangles are shown in a single image. Green rectangle shows the normal bounding rect. Red rectangle is the rotated rect.
(x,y),radius = cv2.minEnclosingCircle(cnt)
center = (int(x),int(y))
radius = int(radius)
- img = cv2.circle(img,center,radius,(0,255,0),2)
+ cv2.circle(img,center,radius,(0,255,0),2)
.. image:: images/circumcircle.png
:alt: Minimum Enclosing Circle
::
ellipse = cv2.fitEllipse(cnt)
- im = cv2.ellipse(im,ellipse,(0,255,0),2)
+ cv2.ellipse(img,ellipse,(0,255,0),2)
.. image:: images/fitellipse.png
:alt: Fitting an Ellipse
::
rows,cols = img.shape[:2]
- [vx,vy,x,y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01)
+ [vx,vy,x,y] = cv2.fitLine(cnt, cv2.cv.CV_DIST_L2,0,0.01,0.01)
lefty = int((-x*vy/vx) + y)
righty = int(((cols-x)*vy/vx)+y)
- img = cv2.line(img,(cols-1,righty),(0,lefty),(0,255,0),2)
+ cv2.line(img,(cols-1,righty),(0,lefty),(0,255,0),2)
.. image:: images/fitline.jpg
:alt: Fitting a Line