File size: 901 Bytes
7c48c3c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import cv2
import numpy as np
from PIL import Image
def preprocess_input(input_image):
    return correct_color(input_image)


def correct_color(input_image):
    # Convert PIL Image to NumPy array (OpenCV format)
    open_cv_image = np.array(input_image)
    open_cv_image = open_cv_image[:, :, ::-1].copy()  # Convert RGB to BGR

    # Apply color correction in LAB color space
    lab_image = cv2.cvtColor(open_cv_image, cv2.COLOR_BGR2LAB)
    l_channel, a_channel, b_channel = cv2.split(lab_image)
    l_channel = cv2.equalizeHist(l_channel)
    lab_image = cv2.merge([l_channel, a_channel, b_channel])
    corrected_image = cv2.cvtColor(lab_image, cv2.COLOR_LAB2BGR)

    # Convert corrected image from BGR to RGB
    corrected_image_rgb = cv2.cvtColor(corrected_image, cv2.COLOR_BGR2RGB)

    # Convert back to PIL Image
    pil_image = Image.fromarray(corrected_image_rgb)

    return pil_image