Без дальнейшего описания / разъяснения от вас, я полагаю, вы хотите градиент яркости изображения. Итак, сначала нам нужно изображение яркости, а затем градиент. Обратите внимание, что приведенный ниже пример кода совсем не проверен, он просто дает общее представление о том, как действовать.
Яркость - это просто синоним изображения в оттенках серого, поэтому в зависимости от выбранной вами библиотеки вы можетеdo:
from PIL import Image
lum = Image.open('image.png'),convert('L') # PIL method
Или:
import cv2
lum = cv2.imread('image.png',cv2.IMREAD_GRAYSCALE) # OpenCV method
Вы также можете конвертировать в HSV и выбрать третий канал:
im = Image.open(f).convert('HSV') # PIL method
H, S, lum = im.split()
Или:
im = cv2.imread('image.png') # OpenCV method
lum = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)[...,2]
Теперь вам нужен градиент этого значения, так что это может быть Собел или Шарр:
# Calculate gradient in x-direction
gradX = cv2.Sobel(... 0,1, ...)
# And y-direction
gradY = cv2.Sobel(... 1,0, ...)
# And get combined gradient
grad = np.sqrt(gradX**2 + gradY**2)
Похоже, что веб-сайт, на который вы ссылаетесь, смешивает это с оригиналом, я полагаюэто можно сделать с помощью чего-то вроде:
fraction = 0.3
mixed = cv2.AddWeighted(im, fraction, grad, 1.0-fraction, ...)