人脸识别五官

    xiaoxiao2023-10-29  174

           最近看了一下人脸识别的案例,一直想做一个。 其实正真做起来没有那么难,主要是调试,毕竟人脸识别的过程haarcascade_frontalface_alt.xml 都帮我们做了,知道怎么用他就行了。重点是faces得到脸的位置。

    下面是代码:

    import cv2 as cv import numpy as np def face_detect_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) #把图形转换成灰度值比 CV_RGB2GRAY 更细致 像素被分为了3组 face_detector = cv.CascadeClassifier("C:/dirop/haarcascade_frontalface_alt.xml")#级联分类器 分辨出是否为人脸 eye_cas = cv.CascadeClassifier("C:/dirop/haarcascade_eye.xml")# 检测眼睛 #检测多尺度 gray 待检测的图形 前后两次扫描中搜索窗口的比例系数 默认为1.1即每次搜索窗口依次扩大10% #构成检测目标的相邻矩形的最小个数(2)----->人脸的特征 faces = face_detector.detectMultiScale(gray, 1.1, 2) for x, y, w, h in faces: #画矩形框 参数(目标图像 矩形的一个顶点 对角线的另一个顶点 线条颜色/亮度 线条的粗细程度[负数时填充框内]) cv.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 2) '''眼睛检测''' #f=cv.resize(gray[y:y+h,x:x+w],(200,200)) eyes=eye_cas.detectMultiScale(gray,1.03,5,0,(40,40)) for (ex,ey,ew,eh) in eyes: cv.rectangle(image,(ex,ey),(ex+ew,ey+eh),(255,0,255),2) '''end ''' #cv.imshow("camera",frame) #这2个方法都可以 cv.imshow("result", image) print("--------- Python OpenCV Tutorial ---------") capture = cv.VideoCapture(0) #调用相机 cv.namedWindow("result", cv.WINDOW_AUTOSIZE) #显示窗口 autosize不能手动调整窗口大小 while(True): ret, frame = capture.read() #读取摄像头的帧数 frame = cv.flip(frame, 1) #图形的镜像翻转 face_detect_demo(frame) #相机帧数传递----->显示/检测人脸图形 c = cv.waitKey(10) #等待按键的按下 10ms if c == 27: # ESC break cv.waitKey(0) cv.destroyAllWindows()

     

    最新回复(0)