mirror of
https://github.com/opencv/opencv.git
synced 2024-12-18 19:38:02 +08:00
Merge pull request #2319 from m3d:patch-1
This commit is contained in:
commit
935e36bc72
@ -119,7 +119,7 @@ Let (x,y) be the top-left coordinate of the rectangle and (w,h) be its width and
|
|||||||
::
|
::
|
||||||
|
|
||||||
x,y,w,h = cv2.boundingRect(cnt)
|
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
|
7.b. Rotated Rectangle
|
||||||
-----------------------
|
-----------------------
|
||||||
@ -129,7 +129,7 @@ Here, bounding rectangle is drawn with minimum area, so it considers the rotatio
|
|||||||
rect = cv2.minAreaRect(cnt)
|
rect = cv2.minAreaRect(cnt)
|
||||||
box = cv2.boxPoints(rect)
|
box = cv2.boxPoints(rect)
|
||||||
box = np.int0(box)
|
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.
|
Both the rectangles are shown in a single image. Green rectangle shows the normal bounding rect. Red rectangle is the rotated rect.
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ Next we find the circumcircle of an object using the function **cv2.minEnclosing
|
|||||||
(x,y),radius = cv2.minEnclosingCircle(cnt)
|
(x,y),radius = cv2.minEnclosingCircle(cnt)
|
||||||
center = (int(x),int(y))
|
center = (int(x),int(y))
|
||||||
radius = int(radius)
|
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
|
.. image:: images/circumcircle.png
|
||||||
:alt: Minimum Enclosing Circle
|
:alt: Minimum Enclosing Circle
|
||||||
@ -158,7 +158,7 @@ Next one is to fit an ellipse to an object. It returns the rotated rectangle in
|
|||||||
::
|
::
|
||||||
|
|
||||||
ellipse = cv2.fitEllipse(cnt)
|
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
|
.. image:: images/fitellipse.png
|
||||||
:alt: Fitting an Ellipse
|
:alt: Fitting an Ellipse
|
||||||
@ -175,7 +175,7 @@ Similarly we can fit a line to a set of points. Below image contains a set of wh
|
|||||||
[vx,vy,x,y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01)
|
[vx,vy,x,y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01)
|
||||||
lefty = int((-x*vy/vx) + y)
|
lefty = int((-x*vy/vx) + y)
|
||||||
righty = int(((cols-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
|
.. image:: images/fitline.jpg
|
||||||
:alt: Fitting a Line
|
:alt: Fitting a Line
|
||||||
|
Loading…
Reference in New Issue
Block a user