# 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

Output Image

:::
:::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**
:::