import cv2
import numpy as np

cap=cv2.VideoCapture(0)
fourcc=cv2.VideoWriter_fourcc("X","V","I","D")
out= cv2.VideoWriter("output.mp4", fourcc, 20,  (640,480))
ret, frame1= cap.read()
ret, frame2= cap.read()

while cap.isOpened():
    diff=cv2.absdiff(frame1,frame2)
    gray=cv2.cvtColor(diff,cv2.COLOR_BGR2GRAY)
    blur=cv2.GaussianBlur(gray,(5,5),0)
    _,thresh=cv2.threshold(blur,20,255,cv2.THRESH_BINARY)
    dilated= cv2.dilate(thresh, None, iterations=3)
    countours,  _ =cv2.findContours(dilated,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

   # cv2.drawContours(frame1,countour,-1,(0,255,0),2) #this will draw countours we want to draw a rectangle
    for countour in countours:
        (x,y,z,h)=cv2.boundingRect(countour)

        if (cv2.contourArea(countour)<700):
            continue
        cv2.rectangle(frame1,(x,y),(z,h),(0,225,0),2)
        cv2.putText(frame1,"Status: {}".format("Movement"),(10,20),cv2.FONT_HERSHEY_SIMPLEX,1,(0,225,0),3)


    cv2.imshow("inter", frame1)
    frame1=frame2
    ret, frame2=cap.read()

    if cv2.waitKey(40)==27:
        break

cv2.destroyAllWindows()
cap.release()