How to Draw Rotated Rectangle in OpenCV Python

You can draw a rotated rectangle in OpenCV Python by following the given steps. I highly recommend you get the “Computer Vision: Models, Learning, and Inference Book” to learn Computer Vision.

How to Draw Rotated Rectangle in OpenCV Python
How to Draw Rotated Rectangle in OpenCV Python

Step 1

Import the OpenCV library. If OpenCV is not installed in your system then first install it using This Method.

import cv2 
#cv2 is used for OpenCV library

Step 2

Now read the image from the location. In my case “C:\\AiHints” is the location and “black2.jpg” is the name of the image. Change it according to your image location and name.

image = cv2.imread("C:\\AiHints\\black2.jpg")
#imread is use to read an image from a location

Step 3

In the following code, (320,200) is the center point of the rectangle. 320 is along the x-axis and 200 along the y_axis. In (300,150), 300 is the length and 150 is the width of the rectangle. 60 is the angle of rotation. First, try 0 degrees for understanding then change the angle according to your requirement.

rot_rectangle = ((320, 200), (300, 150), 60)

Step 4

Now boxPoints will make the final four points of our desired rectangle after calculation.

box = cv2.boxPoints(rot_rectangle) 
box = np.int0(box) #Convert into integer values

Step 5

Now we have four boundary points. Use the function cv2.drawcontours to make a rectangle on the image using the four points. The third parameter is 0 to draw only a given contour and (0,0,255) is the color combination for red. The last parameter 2 is for the thickness of the rectangle.

rectangle = cv2.drawContours(image,[box],0,(0,0,255),2)

Step 6

To display the image in a specified window use ”imshow” function.

cv2.imshow("Rotated Rectangle",rectangle)

Step 7

“waitKey(0)” will display a window until any key is pressed. “destroyAllWindows()” will destroy all the windows that we created.

cv2.waitKey(0)
cv2.destroyAllWindows()

Output

Rotated Rectangle on Image using OpenCV

Leave a Comment

Your email address will not be published.