baonh 发表于 2023-11-24 12:07:36

人脸识别


import cv2
import numpy as np

def face_detect_demo(img):
    gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    #加载特征数据
    face_detector=cv2.CascadeClassifier('./opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')
    faces=face_detector.detectMultiScale(gray)#scaleFactor=1.01,minNeighbors=15,maxSize=(50,50),minSize=(30,30))
    for x,y,w,h in faces:
      #print(x,y,w,h)
      cv2.rectangle(img,(x,y),(x+w,y+h),color=(0,255,0),thickness=2)#照片,坐标(顶,角),颜色,线宽
      cv2.circle(img,center=(x+w//2,y+h//2),radius=(w//2),color=(0,0,255,),thickness=2)#照
    cv2.imshow('result',img)


    #加载训练数据
    recognizer=cv2.face.LBPHFaceRecognizer_create()
    recognizer.read('trainer/trainer.yml')
    id,confidence=recognizer.predict(gray[y:y+h,x:x+w])
    print('标签id:',id,'置信评分:',confidence)

    #显示识别出的照片
    #if confidence<120:   
    #    path1='data/jm/'+str(id)+'.bmp'
    #    img_jm=cv2.imread(path1)
    #    cv2.imshow('jm',img_jm)


#加载图片
cap=cv2.VideoCapture(0)      #('video/video1.mp4')
#cap = ImageGrab.grab()
while True:
    flag,frame=cap.read()
    print('flag:',flag,'fram.shaspe:',frame.shape)
    if not flag:
       break
    face_detect_demo(frame)

    if ord('q')==cv2.waitKey(5):
      break

cv2.destroyAllWindows()
cap.release()

996 发表于 2023-11-24 20:12:48

西湖烟雨 发表于 2023-11-24 20:36:37

声声 发表于 2023-11-25 09:45:21

学习

bidezhi7777 发表于 2023-11-25 10:56:49

欧麦瑞恪 发表于 2023-11-25 12:59:11

lf2k2022 发表于 2023-11-26 00:57:57

记好586 发表于 2023-11-27 08:57:39

linyuwen 发表于 2023-11-27 09:07:04

995823615 发表于 2023-11-27 16:54:46

页: [1] 2
查看完整版本: 人脸识别