diff --git a/README.md b/README.md new file mode 100644 index 0000000..012a401 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# A small OpenCV-based face recognition script. +### 🚨 Alarm sounds when a face is detected. \ No newline at end of file diff --git a/main.py b/main.py index 02cc117..6e63a6a 100644 --- a/main.py +++ b/main.py @@ -1,22 +1,26 @@ import cv2 -import winsound -cam = cv2.VideoCapture(1) -while cam.isOpened(): - ret, frame1 = cam.read() - ret, frame2 = cam.read() - diff = cv2.absdiff(frame1, frame2) - gray = cv2.cvtColor(diff, cv2.COLOR_RGB2GRAY) - blur = cv2.GaussianBlur(gray, (5, 5), 0) - _, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY) - dilated = cv2.dilate(thresh, None, iterations=3) - contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) - # cv2.drawContours(frame1, contours, -1, (0, 255, 0), 2) - for c in contours: - if cv2.contourArea(c) < 5000: - continue - x, y, w, h = cv2.boundingRect(c) - cv2.rectangle(frame1, (x, y), (x+w, y+h), (0, 255, 0), 2) - winsound.PlaySound('alert.wav', winsound.SND_ASYNC) - if cv2.waitKey(10) == ord('q'): - break - cv2.imshow('Granny Cam', frame1) \ No newline at end of file +import sounddevice as sd +from scipy.io import wavfile + +if __name__ == '__main__': + cam = cv2.VideoCapture(1) + while cam.isOpened(): + ret, frame1 = cam.read() + ret, frame2 = cam.read() + diff = cv2.absdiff(frame1, frame2) + gray = cv2.cvtColor(diff, cv2.COLOR_RGB2GRAY) + blur = cv2.GaussianBlur(gray, (5, 5), 0) + _, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY) + dilated = cv2.dilate(thresh, None, iterations=3) + contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) + # cv2.drawContours(frame1, contours, -1, (0, 255, 0), 2) + for c in contours: + if cv2.contourArea(c) < 5000: + continue + x, y, w, h = cv2.boundingRect(c) + cv2.rectangle(frame1, (x, y), (x + w, y + h), (0, 255, 0), 2) + fs, data = wavfile.read('alert.wav') + sd.play(data, fs) + if cv2.waitKey(10) == ord('q'): + break + cv2.imshow('Granny Cam', frame1) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e6c63d5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +opencv-python +sounddevice +scipy \ No newline at end of file