Создайте прозрачный слой для изображения в opencv - PullRequest
0 голосов
/ 15 апреля 2019

Я работаю над «проектом» с использованием 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-слой) размыто.

...