# OpenCV cv2.rectangle() method :::section{.abstract} ## Overview In computer vision and image processing, OpenCV is a popular library used for various image-related tasks. One of the basic operations in OpenCV is **drawing geometric shapes** on an image, such as rectangles. The cv2.rectangle() method is used to draw rectangles on an image. ::: :::section{.scope} ## Syntax of OpenCV cv2.rectangle() method The syntax of the OpenCV cv2.rectangle() method is as follows: ```python cv2.rectangle(img, pt1, pt2, color, thickness) ``` ::: :::section{.main} ## Parameters of OpenCV cv2.rectangle() method The cv2.rectangle() method takes the following parameters: **img:** The image on which the rectangle is to be drawn. **pt1:** The first point of the rectangle. **pt2:** The second point of the rectangle. **color:** The color of the rectangle. **thickness:** The thickness of the rectangle. ::: :::section{.main} ## Return Value of OpenCV cv2.rectangle() method The cv2.rectangle() method does not return anything.The output of the cv2.rectangle() method is a modified image where a rectangle is drawn on it according to the specified parameters such as **coordinates, color, thickness**, etc. The rectangle will appear on the specified position of the image with the specified color and thickness. ::: :::section{.main} ## Exceptions of OpenCV cv2.rectangle() method The cv2.rectangle() method may raise the following exceptions: **cv2.error:** This exception is raised if the image is not valid. ::: :::section{.main} ## How does the OpenCV cv2.rectangle() method work? The cv2.rectangle() method works by taking an image and two points that **define the corners** of the rectangle. It then draws a rectangle on the image with the given color and thickness. Here is the code to implement the cv2.rectangle(): ```python import cv2 # Load the image image = cv2.imread('testimage.jpg') # Define the points of the rectangle height, width, channels = image.shape start_point = (0,0) end_point = (width, height) color = (0,0,255) thickness = 5 # Draw the rectangle on the image image = cv2.rectangle(image, start_point, end_point, color, thickness) # Display the image cv2.imshow('Rectangle',image) ``` This code will load an image named 'testimage.jpg', draw a **red rectangle around** the image, and display the modified image in a new window named 'Rectangle'. The rectangle will start from the **top left corner** of the image and will end at the bottom right corner of the image. The thickness of the rectangle will be **5 pixels**. **Output:** Original Image ![Input Image](https://i.imgur.com/37EXsLY.png) Output Image ![Output Image](https://i.imgur.com/wDWrB5Q.png) ::: :::section{.main} ::: :::section{.main} ## Examples Here are three examples of using the OpenCV cv2.rectangle() method: **Example 1:** Draw a **blue rectangle** with a thickness of 2 pixels at the coordinates **(100, 100) and (300, 200)** on an image named img1.jpg. ``` import cv2 # Load the image img = cv2.imread('img1.jpg') # Draw a blue rectangle on the image cv2.rectangle(img, (100, 100), (300, 200), (255, 0, 0), 2) # Display the image cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` **Example 2:** Draw a **red rectangle** with a thickness of 1 pixel at the coordinates **(50, 50) and (150, 150)** on a black background image. ``` import cv2 import numpy as np # Create a black background image img = np.zeros((200, 200, 3), np.uint8) # Draw a red rectangle on the image cv2.rectangle(img, (50, 50), (150, 150), (0, 0, 255), 1) # Display the image cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` **Example 3:** Draw a **green rectangle** with a thickness of 5 pixels at the coordinates **(200, 200) and (400, 300)** on a white background image. ``` import cv2 import numpy as np # Create a white background image img = np.ones((500, 500, 3), np.uint8) * 255 # Draw a green rectangle on the image cv2.rectangle(img, (200, 200), (400, 300), (0, 255, 0), 5) # Display the image cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows() These examples demonstrate the use of the OpenCV cv2.rectangle() method to draw rectangles on different types of images, using different colors and thicknesses. ``` ::: :::section{.summary} ## Conclusion The **cv2.rectangle()** method is a useful tool for drawing rectangles on images in OpenCV. It takes an image, two points that define the corners of the rectangle, a color, and a thickness as inputs, and draws the rectangle on the image. ::: :::section{.main} ## See Also **OpenCV documentation:** https://docs.opencv.org/master/d6/d6e/group__imgproc__draw.html#ga07d2f74cadcf8e305e810ce8eed13bc9 **Tutorial on drawing shapes in OpenCV:** https://docs.opencv.org/master/dc/da5/tutorial_py_drawing_functions.html ::: :::section{.main} ## MCQs **What is the purpose of the OpenCV cv2.rectangle() method?** a) To draw a rectangle on an image b) To read an image from a file c) To convert an image to grayscale d) To resize an image to a new size **Answer: a** **What is the syntax of the OpenCV cv2.rectangle() method?** a) cv2.rectangle(img, pt1, pt2, color, thickness) b) cv2.rectangle(pt1, pt2, img, color, thickness) c) cv2.rectangle(color, thickness, pt1, pt2, img) d) cv2.rectangle(img, color, thickness, pt1, pt2) **Answer: a** **Which parameter of the OpenCV cv2.rectangle() method sets the color of the rectangle?** a) img b) pt1 c) pt2 d) color **Answer: d** :::