本项目将下图中麦麦的脸部进行模糊化。
1.导入相关库
import cv2
2.加载图像,定义他的高度和宽度,然后定义内核的宽度和高度。(我们将采用高斯模糊,其内核取决于图像的高度和宽度,也可以自己设置内核大小,它越大,图像越模糊),最后加载Cascade分类器。
image = cv2.imread('image.jpg')
h, w = image.shape[:2]
kernel_width = (w//7) | 1
kernel_height = (h//7) | 1
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
3.将图像提供给分类器,将遍历每个检测到的人脸以应用高斯模糊。
faces = face_cascade.detectMultiScale(image, 1.1, 5)
for x, y, w, h in faces:
face_roi = image[y:y+h, x:x+w]
blurred_face = cv2.GaussianBlur(face_roi, (kernel_width, kernel_height), 0)
image[y:y+h, x:x+w] = blurred_face
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
全部代码
import cv2
image = cv2.imread('image.jpg')
h, w = image.shape[:2]
kernel_width = (w//7) | 1
kernel_height = (h//7) | 1
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(image, 1.1, 5)
for x, y, w, h in faces:
face_roi = image[y:y+h, x:x+w]
blurred_face = cv2.GaussianBlur(face_roi, (kernel_width, kernel_height), 0)
image[y:y+h, x:x+w] = blurred_face
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
实现效果



