# https://juejin.cn/post/7019121556588593189 # https://github.com/InstantID/InstantID # from insightface.app import FaceAnalysis import cv2 from PIL import Image import os # 加载级联 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') def check(imgFile): img = cv2.imread(imgFile) # 检测人脸 faces = face_cascade.detectMultiScale(image=img, scaleFactor=1.1, minNeighbors=5) # 在人脸周围绘制边界框 for (x, y, w, h) in faces: cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) # 显示图像中检测到的人脸数量 print(len(faces), "faces detected!") if len(faces)>1: # 绘制检测到人脸的图像 finalimg = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) # 将numpy数组转换为PIL图像 outImage = imgFile.replace("/Upload/", "/Flag/") image = Image.fromarray(finalimg) image.save(outImage) # 指定要遍历的目录路径 directory = r'C:/Users/Administrator/Desktop/Upload' # 获取目录下的所有文件和目录名称列表 with os.scandir(directory) as entries: for entry in entries: if entry.is_file(): imgFile = directory + '/' + entry.name check(imgFile)