eric949
eric949
采纳率60%
2018-05-15 13:24

Python及OpenCV视频实时人脸覆盖

40

视频实时人脸检测功能已经做出来了就差人脸覆盖了,求助,我的代码如下,请各位大神直接在我的代码里加入人脸覆盖代码即可,谢谢;
import cv2

face_cascade = cv2.CascadeClassifier('E:\openCV\opencv\sources/data/haarcascades/haarcascade_frontalface_alt2.xml')
cap = cv2.VideoCapture(0)
while True:
ret,img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('img',img)

if cv2.waitKey(1) &0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • J4cks0n J4cks0n 3年前

    图片说明
    照着这个图片来吧

    上面好像有些错了
    评论不能撤回

    点赞 评论 复制链接分享
  • eric949 eric949 3年前

    图片说明

    点赞 评论 复制链接分享
  • eric949 eric949 3年前

    ![图片说明](https://img-ask.csdn.net/upload/201805/16/1526441025_355718.png)图片说明

    点赞 评论 复制链接分享
  • J4cks0n J4cks0n 3年前

    #下面这样。测试通过
    import cv2

    img1_path = r'C:\Users\Jack\Desktop\Head\head4.jpg'
    img1 = cv2.imread(img1_path)
    face_cascade = cv2.CascadeClassifier(r'D:\Firefox\1_Download\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml')
    cap = cv2.VideoCapture(1)
    cv2.imshow('img1',img1)
    while True:
    ret,img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    img1 = cv2.resize(img1,(w,h))
    img[y:y+w,x:x+w] = img1
    cv2.imshow('img',img)

    if cv2.waitKey(1) &0xFF == ord('q'):
        break
    

    cap.release()
    cv2.destroyAllWindows()

    点赞 评论 复制链接分享
  • zdh111111 zdh111111 3年前

    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)这一句改成img[x:x+w,y:y+h]=0 ,这个是把人脸置黑,类似修改就行,不懂可以继续问

    点赞 评论 复制链接分享