5.python-opencv人脸马赛克

5.python-opencv人脸马赛克

第一章 python-opencv-图片导入和显示
第二章 python-opencv图像简单处理
第三章 python-opencv图像mask掩膜处理
第四章 python-opencv图像马赛克



完整代码

上一章我们讲解了如何将图像进行马赛克处理,那么这一章是使用上一章的方法将图像中的人脸进行马赛克处理,与上一章不同的是需要先找到图像中人脸的位置,然后将人脸的区域进行模糊处理。

方法一

import cv2

if __name__ == '__main__':
    # 加载图片
    img = cv2.imread('./tong.jpg')
    #将人脸切片,获取人脸的区域
    face = img[100:400, 200:500]  
    # 利用马赛克方法一
    face = cv2.resize(face, (30, 30))
    face = cv2.resize(face, (300, 300))
    # 将马赛克的人脸区域替换原始图像的人脸区域
    img[100:400, 200:500] = face

    cv2.imshow('picture', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

方法二

import cv2

if __name__ == '__main__':
    # 加载图片
    img = cv2.imread('./tong.jpg')
    # 将人脸切片,获取人脸的区域
    face = img[100:400, 200:500] 
    # 利用马赛克方法二
    face = cv2.resize(face, (30, 30))
    face = np.repeat(face, 10, axis=0)
    face = np.repeat(face, 10, axis=1)
    # 将马赛克的人脸区域替换原始图像的人脸区域
    img[100:400, 200:500] = face

    cv2.imshow('picture', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

方法三

import cv2

if __name__ == '__main__':
    # 加载图片
    img = cv2.imread('./tong.jpg')
    # 将人脸切片,获取人脸的区域
    face = img[100:400, 200:500]
    # 利用马赛克方法三
    face = face[::10,::10]
    face = np.repeat(face, 10, axis = 0)
    face = np.repeat(face, 10, axis = 1)
    # 将马赛克的人脸区域替换原始图像的人脸区域
    img[100:400, 200:500] = face

    cv2.imshow('picture', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

代码运行结果

1.方法一结果

在这里插入图片描述


2.方法二结果

在这里插入图片描述


3.方法三结果

在这里插入图片描述


总结

本文主要讲解了如何将图像中的部分区域进行马赛克处理,首先利用切片操作获取区域,然后利用第四章讲解的三种马赛克方法对区域进行模糊处理,最后将模糊区域替换为原始图像中的区域。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值