CVLIB-如何在原始图像中添加模糊的亚平面



朋友们,我需要实现一个代码,它可以模糊给定图像中的人脸(我不是开发人员,所以这对我来说真的很困难(。我发现我可以使用OpenCV和cvlib来完成这项工作,并找到了一个示例代码(来自cvlib的存储库(,它完成了部分工作。

我知道我需要得到子曲面并将人脸模糊应用于它们,我可以做到,但现在我不知道如何将模糊的人脸添加到原始图像中。有人能帮我吗?

import cvlib as cv
import sys
from cv2 import cv2
import os 
# read input image
image = cv2.imread('path')
# apply face detection
faces, confidences = cv.detect_face(image)
print(faces)
print(confidences)
# loop through detected faces
for face,conf in zip(faces,confidences):
(startX,startY) = face[0],face[1]
(endX,endY) = face[2],face[3]
subFace = image[startY:endY,startX:endX]
subFace = cv2.GaussianBlur(subFace,(23, 23), 30)
# display output
# press any key to close window           
cv2.imshow("face_detection", image)
cv2.waitKey()
cv2.imshow("face_detection", subFace)

# release resources
cv2.destroyAllWindows()

我终于想好了怎么做:

import cvlib as cv
import sys
from cv2 import cv2
import os 
# read input image
image = cv2.imread('path')
# apply face detection
faces, confidences = cv.detect_face(image)
# print the array with the coordinates and the confidence
print(faces)
print(confidences)
# loop through detected faces
for face,conf in zip(faces,confidences):
(startX,startY) = face[0],face[1]
(endX,endY) = face[2],face[3]

# get the subface
subFace = image[startY:endY,startX:endX]
# apply gaussian blur over subfaces
subFace = cv2.GaussianBlur(subFace,(23, 23), 30)
# add the subfaces to de original image
image[startY:startY+subFace.shape[0], startX:startX+subFace.shape[1]] = subFace

cv2.imshow("face_detection", image)
cv2.waitKey()
# save output
cv2.imwrite("face_detection.jpg", image)
# release resources
cv2.destroyAllWindows()

最新更新