【机器学习】opencv-摄像头中的人脸采集

本次在视频识别的程度上增添了摄像头实时识别,

区别在于:

  • # v = cv2.VideoCapture('./dzd2.mp4')

  • v = cv2.VideoCapture(0) 

import numpy as np

import cv2

face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt2.xml')
# v = cv2.VideoCapture('./dzd2.mp4')
v = cv2.VideoCapture(0)
# win = cv2.namedWindow('dzd',cv2.WINDOW_NORMAL)

#视频时由一张行图片组成,每一张图片,帧

num = 1

while True:
    flag,frame= v.read()
    
    if not flag:
        break

        
    frame = cv2.resize(frame,(640,360))
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    
    face_zones = face_detector.detectMultiScale(gray,scaleFactor=1.1,
#                                             minNeighbors=3,
#                                             minSize =(60,60),
#                                             maxSize =(110,110)
                                               )
#     print(face_zones)
    for x,y,w,h in face_zones[:1]:
        cv2.rectangle(frame,pt1=(x,y),pt2=(x+w,y+h),color= [0,0,255],thickness=2,)
#         cv2.circle(frame,center=(x+w//2,y+h//2),radius=w//2,color= [0,0,255],thickness=2,)
    
    cv2.imshow('dzd',frame)
#     if len(face_zones)>=1:
#         f = input('是否保存这张图片?Y/N').lower()
#         if f == 'y':
#             face = frame[y:y+h,x:x+w]
#             cv2.imwrite('./faces/liu/%d.jpg'%(num),face)
#             num+=1
    key =cv2.waitKey(41)
    
    if key == ord('y'):
        face = frame[y+2:y+h-2,x+2:x+w-2]
        cv2.resize(face,(64,64))
        cv2.imwrite('./faces/liuwang/%d.jpg'%(num),face)
        num+=1
    elif key == ord('q'):
        break
        
v.release()#释放视频流
cv2.destroyAllWindows()

 

  • 1
    点赞
  • 0
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页

打赏

网络毒刘

授人玫瑰,手有余香。

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者