|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
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() |
|