小实验:python+opencv实现摄像头人脸识别、人脸马赛克

python学习中,做个小实验熟悉下语句。实验效果是通过本机摄像头实时采集图像,并将人脸区域打码。(这个人脸识别文件是识别正脸的,面部要正对摄像头)
以杰尼龟为例,将其头部打码。。。。
在这里插入图片描述
在执行代码前,要确认是否安装了opencv和numpy的库
尚未安装的话,在命令行中输入pip install numpy,pip install opencv-python进行安装
另外一个可能会遇见的问题,找不到这个人脸识别文件。
在这里插入图片描述
遇到这个问题时,可以在安装opencv库后,在python根目录下找到:

C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib\site-packages\cv2\data

代码如下:

import cv2
import numpy as np

if __name__ == '__main__':
    cap = cv2.VideoCapture(0)              #打开本机摄像头
    while True:
        flag,frame = cap.read()
        if not flag:   #未获取图像则跳出循环
            break
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)   #灰度化
        face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')   #人脸识别文件
        faces = face_cascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=30)
        for x, y, w, h in faces:
            #frame = cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 3)  #框选人脸区域
            face = frame[y:y+h , x:x+w]				#打码
            face = face[::15 ,::15]
            face = np.repeat(face,15,axis = 0)
            face = np.repeat(face,15,axis = 1)
            frame[ y:y+h , x:x+w] = face[:h ,:w]

        cv2.imshow("image", frame)
        key = cv2.waitKey(1000//24)
        if key == ord('q'):   #按q退出
            break
    cv2.destroyAllWindows()
    cap.release()
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值