Main Channel Down, But This AI Face Lock App Might Revive Everything – FuzzuTech's Big Push!
Demo :
Click Video πππ
π Features:
-
Real-time AI detection
-
GUI built with Tkinter
-
Works on any PC
-
Built for tech lovers & Python learners
-
Includes full source code (link in YT comments)
Code :
import tkinter as tk
from tkinter import messagebox
import cv2
from PIL import Image, ImageTk
import threading
class FaceLockApp:
def __init__(self, root):
self.root = root
self.root.title("Face Lock System")
self.root.geometry("700x500")
self.root.configure(bg="#121212")
self.root.resizable(False, False)
# Title
self.title_label = tk.Label(root, text="π Face Lock System", font=("Segoe UI", 24, "bold"), fg="#00fff7", bg="#121212")
self.title_label.pack(pady=20)
# Video frame border
self.video_frame = tk.Label(root, bg="#0d7377", bd=5, relief="ridge")
self.video_frame.pack(pady=10)
# Status label
self.status_label = tk.Label(root, text="Waiting for face...", font=("Segoe UI", 14), fg="#00d9b6", bg="#121212")
self.status_label.pack(pady=15)
# Start button
self.start_btn = tk.Button(root, text="Start Face Unlock", font=("Segoe UI", 14, "bold"), bg="#00d9b6", fg="#121212",
activebackground="#00fff7", activeforeground="#121212", command=self.start_face_unlock)
self.start_btn.pack(pady=10)
# Stop button
self.stop_btn = tk.Button(root, text="Stop", font=("Segoe UI", 14, "bold"), bg="#ff0054", fg="white",
activebackground="#ff3366", activeforeground="white", command=self.stop_face_unlock, state="disabled")
self.stop_btn.pack(pady=5)
# OpenCV and threading
self.cap = None
self.running = False
self.thread = None
# Load pre-trained face detector
self.face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
def start_face_unlock(self):
if not self.running:
self.cap = cv2.VideoCapture(0)
self.running = True
self.start_btn.config(state="disabled")
self.stop_btn.config(state="normal")
self.status_label.config(text="Looking for face...", fg="#00d9b6")
self.thread = threading.Thread(target=self.video_loop)
self.thread.start()
def stop_face_unlock(self):
self.running = False
self.start_btn.config(state="normal")
self.stop_btn.config(state="disabled")
self.status_label.config(text="Face unlock stopped.", fg="#ff0054")
if self.cap:
self.cap.release()
self.cap = None
self.video_frame.config(image='')
def video_loop(self):
while self.running and self.cap.isOpened():
ret, frame = self.cap.read()
if not ret:
break
# Convert to grayscale for face detection
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = self.face_cascade.detectMultiScale(gray, 1.3, 5)
# Draw neon-style rectangles around detected faces
for (x, y, w, h) in faces:
# Neon glow effect using multiple rectangles
for i in range(5):
color = (0, 255 - i*40, 255)
cv2.rectangle(frame, (x - i, y - i), (x + w + i, y + h + i), color, 2)
# Face detected?
if len(faces) > 0:
self.status_label.config(text="Face Detected! Unlocking...", fg="#00ff94")
else:
self.status_label.config(text="Looking for face...", fg="#00d9b6")
# Convert OpenCV image to PIL ImageTk
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
self.video_frame.imgtk = imgtk
self.video_frame.config(image=imgtk)
# Release when done
if self.cap:
self.cap.release()
self.cap = None
if __name__ == "__main__":
root = tk.Tk()
app = FaceLockApp(root)
root.mainloop()
Comments
Post a Comment