1.安装opencv和opencv-python-headless库。
2.导入所需的库:
import CV2 import numpy as np
3.加载人脸识别分类器:
face_cascade = CV2.CascadeClassifier('path/to/haarcascade_frontalface_default.xml')
4.使用OpenCV的VideoCapture类来获取视频流。
cap = CV2.VideoCapture(0)
5.在循环中捕获每一帧,并在每一帧上检测人脸:
while True:
ret, frame = cap.read()
gray = CV2.cvtColor(frame, CV2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
CV2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
CV2.imshow('frame',frame)
if CV2.waitKey(1) & 0xFF == ord('q'):
break
最后,释放视频流并关闭所有窗口:
cap.release() CV2.destroyAllWindows()
完整代码:
import CV2
import numpy as np
face_cascade = CV2.CascadeClassifier('path/to/haarcascade_frontalface_default.xml')
cap = CV2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = CV2.cvtColor(frame, CV2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
CV2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
CV2.imshow('frame',frame)
if CV2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
CV2.destroyAllWindows()
运行上面的代码将会启动一个窗口,
在窗口中显示视频流并在检测到的人脸上绘制矩形。按“q”键可以退出程序。
需要注意的是,上面的代码使用的是默认的人脸识别分类器,在实际应用中可能需要使用其他分类器或训练自己的分类器来提高识别率。
此外,可以在程序中添加其他功能,如人脸跟踪、人脸识别等。