Python 下opencv 应用:实时人脸检测

前面我介绍了 从图片中人脸识别,也介绍了 摄像头接口 ,这2者组合就可以构成实时人脸检测。如果要效果好,还要注意 调整摄像头的参数

程序运行前应该下载好文件haarcascade_frontalface_default.xml,程序注释中有个下载地址。

如果你自己电脑上有opencv,那么电脑上也可以搜索到,我的在C:\opencv347\opencv\sources\data\haarcascades_cuda目录下。并且有很多个。

如果想知道怎么构造这个文件,可以看我另篇博客:目标检测的模型haartraining培训 会这个就可以检测任何东西了。

程序代码如下:

import cv2

# https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml
face_patterns = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')  #加载分类器,在opencv库内
cap = cv2.VideoCapture(0) #打开摄像头操作,摄像头编号0,1,2,3
cap.set(cv2.CAP_PROP_FRAME_WIDTH,1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1024)
while cap.isOpened:
    #利用read方法读取摄像头的某一帧图片
    (ok, image) = cap.read() 
    if not ok:
        break
    faces = face_patterns.detectMultiScale(image,scaleFactor=1.1,
    minNeighbors=5,minSize=(80, 80))
    for (x, y, w, h) in faces:
        cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
    cv2.imshow('face', image);
    if cv2.waitKey(10)&0xFF==ord('q'):#按下q,退出循环
        break 
cap.release()
cv2.destroyAllWindows()

程序运行效果如下:

发布了131 篇原创文章 · 获赞 112 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/leon_zeng0/article/details/102851303
今日推荐