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