python摄像头人脸识别门禁系统代码

代码语言:python

所属分类:其他

代码描述:python人脸识别门禁系统代码,调用摄像头实时识别,可录入人脸数据,记录抓怕陌生人闯入照片。

代码标签: python 摄像头 人脸 识别 门禁 系统 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import cv2
import face_recognition
import numpy as np
import os
import json
from datetime import datetime
from tkinter import *
from tkinter import ttk, messagebox, filedialog
from PIL import Image, ImageTk
import threading
import requests  # 用于模拟 API 调用

# ==================== 配置 ====================
DATA_DIR = "face_data"
CAPTURE_DIR = "captures"
os.makedirs(DATA_DIR, exist_ok=True)
os.makedirs(CAPTURE_DIR, exist_ok=True)
DATABASE_FILE = os.path.join(DATA_DIR, "database.json")

# 初始化数据库
if not os.path.exists(DATABASE_FILE):
    with open(DATABASE_FILE, 'w') as f:
        json.dump([], f)

# ==================== 人脸数据库管理 ====================
class FaceDatabase:
    def __init__(self):
        self.encodings = []
        self.names = []
        self.load_database()

    def load_database(self):
        """从 JSON 加载人脸数据"""
        self.encodings = []
        self.names = []
        try:
            with open(DATABASE_FILE, 'r') as f:
                data = json.load(f)
            for item in data:
                img = face_recognition.load_image_file(os.path.join(DATA_DIR, item['image']))
                encoding = face_recognition.face_encodings(img)
                if encoding:
                    self.encodings.append(encoding[0])
                    self.names.append(item['name'])
        except Exception as e:
            print("加载数据库失败:", e)

    def add_face(self, name, image_path):
        """添加新人脸"""
        img = face_recognition.load_image_file(image_path)
        encodings = face_recognition.face_encodings(img)
        if not .........完整代码请登录后点击上方下载按钮下载查看

网友评论0