import cv2
import winsound

# open camera
cam = cv2.VideoCapture(0)
# if camera isOpen then do func
while cam.isOpened:
    
    ret,frame1 = cam.read()
    ret,frame2 = cam.read()
    
    # getting difference from two frames 
    diff = cv2.absdiff(frame1,frame2)
    gray = cv2.cvtColor(diff, cv2.COLOR_RGB2GRAY)
    blur = cv2.GaussianBlur(gray , (5 , 5), 0)

    # threshold image for sharpen difference
    _, thresh = cv2.threshold(blur, 20 ,255 , cv2.THRESH_BINARY)

    # show contours in image
    dilated = cv2.dilate(thresh, None, iterations=3)
    contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    # cv2.drawContours(frame1 , controus , -1, (0,255,0) , 2)

    # add contours which have big area ; remove small ones tiny  
    for c in contours:
        if cv2.contourArea(c) < 5000:
            continue
        
        # for getting coordinate of moments
        x, y, w, h = cv2.boundingRect(c)
        cv2.rectangle(frame1,(x,y),(x+w,y+h),(0, 255, 0), 2)
        # winsound.Beep(1000 , 200)
        winsound.PlaySound('alert.wav', winsound.SND_ASYNC)   

    # if q is pressed , window closed
    # wait for 10 ms check if user press q key or not
    # to know key use ord() function
    if cv2.waitKey(10) == ord('q'):
        break 

    # show frame in window 
    cv2.imshow('Secure Vision',frame1)






