人脸图片马赛克(OpenCv)

图像马赛克

我们先看看原图效果
在这里插入图片描述

第一步,检测出人脸的位置,OpenCV提供harr级联检测器检测人脸。

face_datect = cv.CascadeClassifier('./haarcascade_frontalface_alt2.xml')

第二步,实现马赛克效果

import cv2 as cv
import numpy as np
#1、读取图像
img = cv.imread('./img/nba1.jpg')
#2、灰度转换
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
#3、 harr级联
face_detect = cv.CascadeClassifier('./haarcascade_frontalface_alt2.xml')
#4、返回人脸位置信息
face = face_detect.detectMultiScale(gray,1.01,3,maxSize=(40,40))
# 5、实现马赛克
for x,y,w,h in face:
    #图片: 高度,宽度,像素
    face = img[y:y+h,x:x+w]
    # 像素取舍,10步长
    face = face[::10,::10]
    # 像素复制
    face = np.repeat(face,10,axis=0)
    face = np.repeat(face,10,axis=1)
    img[y:y+h,x:x+w] = face[:w,:h]
cv.imshow('img',img)

cv.waitKey(0)
cv.destroyAllWindows()

结果
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值