5.python-opencv人脸马赛克 第一章 python-opencv-图片导入和显示
第二章 python-opencv图像简单处理
第三章 python-opencv图像mask掩膜处理
第四章 python-opencv图像马赛克
【python-opencv|5.python-opencv人脸马赛克】
文章目录
- 5.python-opencv人脸马赛克
- 完整代码
-
- 方法一
- 方法二
- 方法三
- 代码运行结果
-
- 1.方法一结果
- 2.方法二结果
- 3.方法三结果
- 总结
完整代码 上一章我们讲解了如何将图像进行马赛克处理,那么这一章是使用上一章的方法将图像中的人脸进行马赛克处理,与上一章不同的是需要先找到图像中人脸的位置,然后将人脸的区域进行模糊处理。
方法一
import cv2if __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] = facecv2.imshow('picture', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
方法二
import cv2if __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] = facecv2.imshow('picture', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
方法三
import cv2if __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] = facecv2.imshow('picture', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码运行结果 1.方法一结果
2.方法二结果
3.方法三结果
总结 本文主要讲解了如何将图像中的部分区域进行马赛克处理,首先利用切片操作获取区域,然后利用第四章讲解的三种马赛克方法对区域进行模糊处理,最后将模糊区域替换为原始图像中的区域。
推荐阅读
- 力扣算法题-python|力扣算法题总结(python)—二分查找
- Python 设计模式(单例模式)
- 人工智能|终结 Python 原生字典(这个库要逆天改命了)
- python|终结 Python 原生字典(这个库真的要逆天改命了)
- 数据库|MySQL 暴跌!
- 为什么range不是迭代器(range到底是什么类型?)
- 大名鼎鼎的Requests库用了什么编码风格()
- Python进阶(自定义对象实现切片功能)
- Python进阶(切片的误区与高级用法)