Python OpenCV人脸识别戴道具胡子

迈不过友情╰ 2023-10-02 12:07 18阅读 0赞
  1. import cv2
  2. import numpy as np
  3. mouth_cascade = cv2.CascadeClassifier('./cascade_files/haarcascade_mcs_mouth.xml')
  4. moustache_mask = cv2.imread('./images/moustache.png')
  5. h_mask, w_mask = moustache_mask.shape[:2]
  6. if mouth_cascade.empty():
  7. raise IOError('Unable to load the mouth cascade classifier xml file')
  8. cap = cv2.VideoCapture(0)
  9. scaling_factor = 0.5
  10. while True:
  11. ret, frame = cap.read()
  12. frame = cv2.resize(frame, None, fx=scaling_factor, fy=scaling_factor, interpolation=cv2.INTER_AREA)
  13. gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  14. mouth_rects = mouth_cascade.detectMultiScale(gray, 1.3, 5)
  15. if len(mouth_rects) > 0:
  16. (x,y,w,h) = mouth_rects[0]
  17. h, w = int(0.6*h), int(1.2*w)
  18. x -= int(0.05*w)
  19. y -= int(0.55*h)
  20. frame_roi = frame[y:y+h, x:x+w]
  21. moustache_mask_small = cv2.resize(moustache_mask, (w, h), interpolation=cv2.INTER_AREA)
  22. gray_mask = cv2.cvtColor(moustache_mask_small, cv2.COLOR_BGR2GRAY)
  23. ret, mask = cv2.threshold(gray_mask, 50, 255, cv2.THRESH_BINARY_INV)
  24. mask_inv = cv2.bitwise_not(mask)
  25. masked_mouth = cv2.bitwise_and(moustache_mask_small, moustache_mask_small, mask=mask)
  26. masked_frame = cv2.bitwise_and(frame_roi, frame_roi, mask=mask_inv)
  27. frame[y:y+h, x:x+w] = cv2.add(masked_mouth, masked_frame)
  28. cv2.imshow('Moustache', frame)
  29. c = cv2.waitKey(1)
  30. if c == 27:
  31. break
  32. cap.release()
  33. cv2.destroyAllWindows()

发表评论

表情:
评论列表 (有 0 条评论,18人围观)

还没有评论,来说两句吧...

相关阅读

    相关 opencv人脸识别

    我的劳动成果。 1.成功安装了opencv ,可是它还要编译。我放弃。 2.成功训练自己的人脸分类器。(虽然数据是别人的,算法也是系统写好的,图形库也是别人调好的)虽然识别

    相关 opencv人脸识别

    opencv人脸识别: 首先我们来简单的讲一下人脸识别流程:这里采用的是vs2017+opencv3.3扩展库 1、进行人脸检测 2、识别器训练与分类 3、人脸检测