调用摄像头框选人脸
代码展示:
import cv2 as cv
import time
# 0的意思是机器默认摄像头
cap = cv.VideoCapture(0)
#有的摄像头启动需要时间,这里延时100ms
time.sleep(0.1)
i = 1
while cap.isOpened():
i = i+1
print(i) # 用来查看走过了多少张照片
ret, img = cap.read()
# cv.imwrite('image1.jpg', img) 保存图片图片
# 加载人脸框选库
face = cv.CascadeClassifier('C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_alt2.xml')
# 加载图片到detectMultiScale获取人脸位置
# faces = face.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(10,10))
# scaleFactor是图像的缩放因子
# minNeighbors为每一个级联矩形应该保留的邻近个数,可以理解为一个人周边有几个人脸
# minSize 是检测窗口的大小
faces = face.detectMultiScale(img)
# 取出人脸位置 并且画框框
for (x, y, w, h) in faces:
cv.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 加载窗口
cv.namedWindow("1",cv.WINDOW_NORMAL)
# 加载图片
cv.imshow("1", img)
# 等待30ms显示图像,若过程中按“q”退出
if cv.waitKey(30) == ord('q'):
break