python-opencv|5.python-opencv人脸马赛克

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

    推荐阅读