人脸区域马赛克,圆形(心形)模糊Mask

本文探讨如何利用numpy.ogrid创建圆形和心形模糊遮罩,适用于人脸检测后的人脸模糊处理。代码示例展示了cv.circle()创建圆形模糊效果,以及自定义函数生成心形遮罩,并提供了在线绘制函数曲线工具Desmos的推荐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇主要介绍使用numpy.ogrid 生成圆形(心形)模糊遮罩,可以用在对人脸检测后进行人脸的模糊处理。

主要的代码如下(其中涉及到人脸检测部分的可以参考使用mtcnn进行人脸检测):

from mtcnn.mtcnn import MTCNN
import cv2
import numpy as np

img = cv2.imread("test.jpg")
detector = MTCNN()

face_list = detector.detect_faces(img) # face detect and alignment

def generate_mask(img_height,img_width,radius,center_x,center_y):
    y,x=np.ogrid[0:img_height,0:img_width]
    # circle mask
    # mask = (x-center_x)**2+(y-center_y)**2<=radius**2  
    # generate other masks (eg. heart-shaped)
    scale = 5/radius
    mask = 5*((-x+center_x)*scale)**2 - 6*np.abs((-x+center_x)*scale)*((-y+center_y)*scale) + 5*((-y+center_y)*scale)**2 < 128
    return mask

mask_img = np.ones(img.shape,np.int8)
kernel_size = 15
blur_img = cv2.blur(img,(kernel_size,k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值