Open In App

Draw a filled polygon using the OpenCV function fillPoly()

Last Updated : 18 Jan, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

fillPoly() function of OpenCV is used to draw filled polygons like rectangle, triangle, pentagon over an image. This function takes inputs of an image and endpoints of Polygon and color.

Syntax: cv2.fillpoly(Image,End_Points,Color)

Parameter:

  • Image: This is image on which we want draw filled polygon
  • End_Points: Points of polygon(for triangle 3 end points, for rectangle 4 end points will be there)
  • Color: It specifies the color of polygon

Example 1: Draw a triangle

In this example we will draw filled polygon triangle by giving 3 endpoints such as [160,130],[350,130],[250,300] to fillPoly() function.

Input Image:

Code:

Python3




# Import necessary libraries
import cv2
import numpy as np
 
# Read an image
img = cv2.imread("image.png")
 
# Define an array of endpoints of triangle
points = np.array([[160, 130], [350, 130], [250, 300]])
 
# Use fillPoly() function and give input as
# image, end points,color of polygon
# Here color of polygon will blue
cv2.fillPoly(img, pts=[points], color=(255, 0, 0))
 
# Displaying the image
cv2.imshow("Triangle", img)
 
# wait for the user to press any key to
# exit window
cv2.waitKey(0)
 
# Closing all open windows
cv2.destroyAllWindows()


Output:

Example 2: Draw a Hexagon

In this example we will draw a hexagon by giving 6 endpoints such as [220,120],[130,200],[130,300],[220,380],[310,300],[310,200] to fillPoly() function.

Input:

Code:

Python3




# Import necessary libraries
import cv2
import numpy as np
 
# Read an image
img = cv2.imread("image.png")
 
# Define an array of endpoints of Hexagon
points = np.array([[220, 120], [130, 200], [130, 300],
                   [220, 380], [310, 300], [310, 200]])
 
# Use fillPoly() function and give input as image,
# end points,color of polygon
# Here color of polygon will be green
cv2.fillPoly(img, pts=[points], color=(0, 255, 0))
 
# Displaying the image
cv2.imshow("Hexagon", img)
 
# wait for the user to press any key to
# exit window
cv2.waitKey(0)
 
# Closing all open windows
cv2.destroyAllWindows()


Output:

Example 3: Draw a Rectangle 

Sometimes there is a requirement that we need to show photos of someone by hiding their faces. In this case, we can use this function to hide the face of a person.

Input:

Code:

Python3




# Import necessary libraries
import cv2
import numpy as np
 
# Read an image
img = cv2.imread("Documents/Person_Image.jpg",
                 cv2.IMREAD_COLOR)
 
# Define an array of endpoints of Rectangle
points = np.array([[300, 180], [400, 180],
                   [400, 280], [300, 280]])
 
# Use fillPoly() function and give input as image,
# end points,color of polygon
# Here color of polygon will be red
cv2.fillPoly(img, pts=[points], color=(0, 0, 255))
 
# Displaying the image
cv2.imshow("Rectangle", img)
 
# wait for the user to press any key to exit window
cv2.waitKey(0)
 
# Closing all open windows
cv2.destroyAllWindows()


Output:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads