from mtcnn.mtcnn import MTCNN
import cv2
import numpy as np
img=cv2.imread("C:/Users/xpp/Desktop/Lena.png")#读取图像
detector=MTCNN()
face_list=detector.detect_faces(img)#人脸检测与对齐
def generate_mask(img_height,img_width,radius,center_x,center_y):
y,x=np.ogrid[0:img_height,0:img_width]
mask=(x-center_x)**2+(y-center_y)**2<=radius**2#圆形
return mask
mask_img=np.ones(img.shape,np.int8)
kernel_size=15
blur_img=cv2.blur(img,(kernel_size,kernel_size))#方框滤波
for face in face_list:
box=face["box"]
x,y,w,h=box#边界框
mask=generate_mask(img.shape[0],img.shape[1],max(w,h)/2,x+w/2,y+h/2)#圆形虚化模糊遮罩
mask_img[mask]=[0,0,0]
mask_img_verse=np.ones(img.shape,np.int8)-mask_img
result_img=mask_img*img+mask_img_verse*blur_img
cv2.imwrite("C:/Users/xpp/Desktop/result.png",result_img)#保存图像
True
算法:圆形模糊是生成圆形模糊虚化遮罩,应用在对人脸(物体)检测后,进行人脸(物体)模糊虚化处理,通过适当的旋转、平移和缩放图像之后即可适当地遮住人脸(物体)。
文献:Zhang, K. , Zhang, Z. , Li, Z. , & Qiao, Y. . (2016). Joint face detection and alignment using multitask cascaded convolutional networks. IEEE Signal Processing Letters, 23(10), 1499-1503.
链接:https://kpzhang93.github.io/MTCNN_face_detection_alignment/
https://support.apple.com/zh-cn/guide/motion/motn169f953e/mac
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!