第一章 python-opencv-图片导入和显示
第二章 python-opencv图像简单处理
第三章 python-opencv图像mask掩膜处理
第四章 python-opencv图像马赛克
第五章 python-opencv人脸马赛克
第六章 python-opencv人脸检测
第七章 python-opencv图像张贴
第八章 python-opencv轮廓绘制
第九章 python-opencv边缘检测
第十章 python-opencvpython-opencv边缘检测与人脸检测应用
第十一章 python-opencv直方图绘制与直方图均衡
第十二章 python-opencv图像傅里叶变换
第十三章 python-opencv图像的高通滤波和低通滤波
第十四章 python-opencv视频中的人脸检测
第十五章 python-opencv视频人脸检测和保存
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
本文主要介绍如何调用摄像头进行实时人脸检测,使用python-opencv和人脸检测器。
import cv2
if __name__ == '__main__':
# 打开摄像头
cap = cv2.VideoCapture(0)
# 加载人脸检测器
faca_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt.xml')
# 读取每一帧图像
while True:
flag, frame = cap.read() # flag是否读取了图片
if not flag:
break
# 将图像转化为灰度图像
gray = cv2.cvtColor(frame, code = cv2.COLOR_BGR2GRAY)
# 对每一帧灰度图像进行人脸检测
faces = faca_detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=10)
# 对每一个检测到的人脸区域绘制检测方框
for x,y,w,h in faces:
cv2.rectangle(frame,
pt1 = (x,y),
pt2 = (x+w,y+h),
color=[0,0,255],
thickness=2)
# 显示检测到的结果
cv2.imshow('face', frame)
# 设置显示时长
key = cv2.waitKey(1000//24) # 注意要用整除//,因为毫秒为整数
# 按q键退出
if key == ord('q'):
break
# 销毁内存
cv2.destroyAllWindows()
cap.release()
其实本文的代码和上一篇博客《python-opencv视频人脸检测和保存》中的代码大致相同,不同的只是将加载视频的代码换成调用摄像头,
加载视频代码: