How to draw Filled rectangle to every frame of video by using Python-OpenCV?
In this article, we will discuss how to draw a filled rectangle on every frame of video through OpenCV in Python.
Stepwise Implementation:
- Import the required libraries into the working space.
- Read the video on which you have to write.
Syntax:
cap = cv2.VideoCapture(“path”)
- Create an output file using cv2.VideoWriter_fourcc() method. Here you will have options of video formats.
Syntax:
output = cv2.VideoWriter(“output.avi”, cv2.VideoWriter_fourcc(*’MPEG’), 30, (1080, 1920))
- Then edit the frames of the video by adding shapes to it (In our case it is a filled rectangle). We will use the cv2.rectangle() method. This method is used to draw a rectangle on any image.
Syntax:
cv2.rectangle(frame, (100, 100), (500, 500), (0, 255, 0), -1)
- Then write all the frames in the video file.
Syntax:
output.write(frame)
Example:
In this example, we add a green rectangle to the video.
Input Video:
Python3
import cv2
def main():
cap = cv2.VideoCapture( "input.mp4" )
output = cv2.VideoWriter(
"output.avi" , cv2.VideoWriter_fourcc( * 'MPEG' ),
30 , ( 1080 , 1920 ))
while ( True ):
ret, frame = cap.read()
if (ret):
cv2.rectangle(frame, ( 100 , 150 ), ( 500 , 600 ),
( 0 , 255 , 0 ), - 1 )
output.write(frame)
cv2.imshow( "output" , frame)
if cv2.waitKey( 1 ) & 0xFF = = ord ( 's' ):
break
else :
break
cv2.destroyAllWindows()
output.release()
cap.release()
if __name__ = = "__main__" :
main()
|
Output:
Last Updated :
03 Jan, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...