Draw a filled polygon using the OpenCV function fillPoly()
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:
Please Login to comment...