python实现调用摄像头视频时用图片挡脸技术

体验一把某主播的快乐!

添加好图片后,可以直接运行。


import cv2

if __name__ == '__main__':
    # 调用摄像头
    video = cv2.VideoCapture(0);
    # 数据参数
    face_detector = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml");
    k_face = cv2.imread("1.jpg")
    # 循环调用摄像头获取-图片数据
        # 从摄像头中获取图片
        # 第一个参数:获取成功 FALSE TRUE 第二 参数:截取一帧的图片
    while True:
        flag,face = video.read();
            
            # 降维 - 降维
        gray = cv2.cvtColor(face,code=cv2.COLOR_RGB2GRAY);
            # 匹配数据
        face_01 = face_detector.detectMultiScale(gray);
        print("=========",flag,"======",face_01);
            # 绘制矩形人脸检测
        for x,y,w,h in face_01:
            
            photo_01 = gray[y:y+h,x:x+w];
            cv2.rectangle(face, pt1=(x, y), pt2=(x + w, y + h), color=[0, 0, 255], thickness=2);
            k_face = cv2.resize(k_face, dsize=(w, h))
            # 设置图片的位置
            face[y:y + w, x:x + h] = k_face

            pass
        cv2.imshow("sxt", face);
        if ord("a") == cv2.waitKey(65):
            break
            pass
        pass
    pass


    cv2.destroyAllWindows();
    # 关闭录像
    video.release();
    pass

 

你可能感兴趣的:(写代码入门,python)