Как реализовать интерактивную кривую тона в Python?

#python #image #opencv #processing #curve

Вопрос:

Я хочу реализовать редактор фотографий на python с помощью flask. До сих пор мне удавалось применить s-образную кривую к фотографии, вот так:

 import cv2 import numpy as np  image = cv2.imread('apple.jpg')  def sToneCurve(frame):  look_up_table = np.zeros((256, 1), dtype='uint8')  for i in range(256):  look_up_table[i][0] = 255 * (np.sin(np.pi * (i / 255 - 1 / 2))   1) / 2  return cv2.LUT(frame, look_up_table)  image_contrasted = sToneCurve(image)  cv2.imwrite('apple_dark.jpg', image_contrasted)  

Как я мог бы реализовать интерактивную кривую тона, чтобы пользователь мог выбрать, как он хотел бы редактировать фотографии, например: кривая тона, а не быть предопределенной формулой, применяемой к фотографии, как в приведенном выше коде. Каков был бы наилучший подход, какие библиотеки и визуализации для графиков кривых использовать?