Сделать белый и градиент в прозрачный файл PNG, используя Python - PullRequest
0 голосов
/ 30 апреля 2018

Мне нужно преобразовать это изображение (левое) в другое с прозрачным фоном, сохраняющим тень ниже, это как градиент, я знаю, что файлы PNG имеют несколько уровней прозрачности, у меня есть другое изображение, которое действует как маска для часть изображения, которая не должна быть прозрачной.

Примечание. Изображения выглядят по-разному, поскольку я обрезаю их вручную, но файл маски идеально подходит для изображения (такого же размера и положения).

Более светлая часть левого изображения должна быть полностью прозрачной, а более темная часть тени должна быть менее прозрачной.

image mask

1 Ответ

0 голосов
/ 30 апреля 2018

Это немного странный запрос. В любом случае, этот код должен делать то, что вам нужно. Это помогает?

import cv2

input_image = cv2.imread('input.png',0)

# Dummy mask to try since I did not have the mask image.
#ret, dummy_mask = cv2.threshold(input_image, 0, 50, cv2.THRESH_BINARY)
#mask = cv2.bitwise_not(dummy_mask)

# Your mask with 0s and 1s
mask = cv2.imread('mask.png',0)
# Retain the masked parts
non_alpha = cv2.bitwise_and(input_image, input_image, mask=mask)

# Get the alpha mask
alpha_mask = cv2.bitwise_not(mask)
alpha_source = cv2.bitwise_and(input_image, input_image, mask=mask)
alpha = cv2.bitwise_not(alpha_source)

#merge them
composite = cv2.merge((non_alpha, non_alpha, non_alpha, alpha));
cv2.imwrite("output.png", composite)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...