Saturday, September 21, 2024
Google search engine
HomeLanguagesHow to draw Filled rectangle to every frame of video by using...

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():
    
    # reading the input
    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):
              
            # adding filled rectangle on each frame
            cv2.rectangle(frame, (100, 150), (500, 600),
                          (0, 255, 0), -1)
              
            # writing the new frame in output
            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:

RELATED ARTICLES

Most Popular

Recent Comments