Как создать прозрачный градиент по краю изображения / изображения маски с помощью python? - PullRequest
0 голосов
/ 18 июня 2020

В основном я хочу создать эффект ореола для изображения, которое постепенно становится прозрачным.

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

изображение и маска ...

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

изображение с градиентом круга

то же изображение, что и выше, но наклеено на белый градиент легче увидеть

...

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

рисовать версию того, что Я бы хотел сделать ...

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

import numpy as np, 
from PIL import Image

W,H=900,900
im = Image.new(mode='RGB', size=(W,H), color=(153,0,0))
Y = np.linspace(-1, 1, H)[None, :]*255
X = np.linspace(-1, 1, W)[:, None]*255
alpha = np.sqrt(X**2 + Y**2) # equation of a circle 
alpha = 255 - np.clip(0,255,alpha)

Пожалуйста, помогите

...