python+opencv人脸识别——2、人脸检测

人脸检测需要xml文件:haarcascade_frontalface_default.xml
这个小demo是检测摄像头中的人脸

步骤:

  1. 读取摄像头数据
  2. 转为灰度图像
  3. 利用xml文件检测人脸
  4. 在窗口画出矩形

代码:

#定义一个 函数:将摄像头的每一帧数据转为灰度图像并画出人脸区域
def face_detect_demo(image,count):
	#转为灰度图像
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    #利用opencv的xml文件直接进行检测
    face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    faces = face_detector.detectMultiScale(gray,1.02,5)
    #画出矩形并显示在窗口中
    for(x,y,w,h) in faces:
        cv2.rectangle(image,(x,y),(x+w,y+h),(0,0,255),2)
    cv2.imshow("window",image)
    cv2.waitKey(10)

#获取摄像头数据,调用上面定义的函数
capture=cv2.VideoCapture(0)
while(True):
    ret,frame = capture.read()
    frame= cv2.flip(frame,1)
    face_detect_demo(frame,count)
   #这里用于中止程序,按ESC中止
    c = cv2.waitKey(50)
    if c == 27:
        break
cv2.waitKey(0)

注意:xml文件需要与py文件放在同一目录下,否则应该加上具体地址

你可能感兴趣的:(python,opencv)