import cv2 as cv
cap = cv.VideoCapture(0) # 视频进行读取操作以及调用摄像头
width = 640
ret = cap.set(3, width)
height = 480
ret = cap.set(4, height)
fourcc = cv.VideoWriter_fourcc(*'XVID')
out = cv.VideoWriter('out.avi', fourcc, 20.0, (width, height))
# 2.在每一帧数据中进行人脸识别
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
# 把每一帧的图像都变成灰度图
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
# 3.实例化OpenCV人脸识别的分类器
face_cas = cv.CascadeClassifier( "Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml" )
face_cas.load('Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
# 4.调用识别人脸
# 检测gray灰度图中是否有人脸
faceRects = face_cas.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
for faceRect in faceRects:
# x,y代表人脸的左上角的起点,w代表向x方向延伸的长度,h代表向y方向延伸的长度
x, y, w, h = faceRect
# 框出人脸
cv.rectangle(frame, (x, y), (x + h, y + w),(0,255,0), 2)
cv.imshow("frame",frame)
if cv.waitKey(1) & 0xFF == ord('q'):
break
# 5. 释放资源
cap.release()
cv.destroyAllWindows()
OpenCv使用摄像头捕捉人脸
最新推荐文章于 2025-03-25 13:45:17 发布