在opencv

时间:2019-04-15 13:13:04

标签: python opencv face-detection

我正在使用opencv(python)处理“项目”。现在,我想为图像创建一个透明层,其大小与图像相同,但是我不知道如何。

我的目标是检测原始图像上的脸部,使其模糊并保存在一层上。之后,我要检测所有面部轮廓,然后进行模糊处理,然后再次将它们保存在一层上,依此类推。最后,我想将图像叠加在一起,并将模糊的部分放在顶部,而不覆盖原始图像的其余部分,因为这些层应该是透明的。

我已经尝试过仅使用原始副本,但是这种方式迫使我检测已经部分模糊的图像上的所有脸部轮廓(因为我之前对脸部进行了模糊处理)

# 1 --> taking the original image and copying it
raw_image = cv2.imread("./fotos/meeting.jpg")
face_result_image = raw_image.copy()

# 2 --> here detecting and blurring the faces

# 3 --> writing new blurred-faces-image:
cv2.imwrite("./face_result.png", face_result_image)


# 4 --> starting the same for faceprofiles using the result of the face-blurring:
profile_face_result_image = face_result_image.copy()

5 --> here detecting and blurring the profiles of faces  

# 6 --> writing new blurred-faces-image:
cv2.imwrite("./faceprofile_result.png", profile_face_result_image)

由于第2点位于for循环中,因此无法在循环外使用检测到的/模糊的部分,为什么我必须将它们放置在循环中的图像上。具有原始大小的透明图层可以解决我的问题,因为我可以将它们放在一个图层上,然后将图层堆叠在另一个图层上,并获得最终图像,其中在x数量的循环中检测到的所有内容(= x -图层)。

0 个答案:

没有答案