Untitled
unknown
plain_text
a year ago
3.0 kB
6
Indexable
import cv2 import sqlite3 import numpy as np import time def one(): conn = sqlite3.connect('test.db') c = conn.cursor() start_time = time.time() c.execute('''CREATE TABLE IF NOT EXISTS faces (id INTEGER PRIMARY KEY, face BLOB)''') face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)) for i, (x, y, w, h) in enumerate(faces): face_roi = frame[y:y+h, x:x+w] _, buffer = cv2.imencode('.jpg', face_roi) face_data = buffer.tobytes() c.execute("INSERT INTO faces (face) VALUES (?)", (face_data,)) for (x, y, w, h) in faces: cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2) cv2.imshow('Face Detection', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break elapsed_time = time.time() - start_time if elapsed_time > 5: break cap.release() conn.commit() conn.close() cv2.destroyAllWindows() def two(): conn = sqlite3.connect('test.db') c = conn.cursor() face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(0) c.execute("SELECT id, face FROM faces") faces_data = c.fetchall() while True: ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)) for (x, y, w, h) in faces: face_roi = gray[y:y+h, x:x+w] for face_id, stored_face_blob in faces_data: stored_face = np.frombuffer(stored_face_blob, dtype=np.uint8) stored_face_resized = cv2.resize(stored_face, (w, h)) result = cv2.matchTemplate(face_roi, stored_face_resized, cv2.TM_CCOEFF_NORMED) _, max_val, _, _ = cv2.minMaxLoc(result) print(f"Face ID: {face_id} - Max value: {max_val}") if max_val > 0.7: # Adjust the threshold as needed cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) cv2.putText(frame, f'Face ID: {face_id} - Face detected.', (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2) print(f"Face ID: {face_id} - Face detected.") cv2.imshow('Face Detection', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() conn.close() cv2.destroyAllWindows() def run(): inp=input() if inp == "1": one() if inp == "2": two() run()
Editor is loading...
Leave a Comment