Converting RGB to LAB (L for lightness and a and b for color opponents green-red and blue-yellow) will do the job. Apply CLAHE to the converted LAB image only to the Lightness component and convert the image to RGB. Here is a snippet.
bgr = cv2.imread(image_path) lab = cv2.cvtColor(bgr, cv2.COLOR_BGR2LAB) lab_planes = cv2.split(lab) clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(gridsize,gridsize)) lab_planes[0] = clahe.apply(lab_planes[0]) lab = cv2.merge(lab_planes) bgr = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)
bgr is the final RGB image obtained after applying CLAHE.
source share