CLAHE是对比度受限的自适应直方图均衡化,可以在http://tog.acm.org/resources/GraphicsGems/gemsiv/clahe.c中找到C语言的源
到目前为止,我只看到了一些在灰度图像上应用CLAHE的示例/教程,因此可以在彩色图像(例如RGB 3通道图像)上应用CLAHE吗?如果是,怎么办?
最佳答案
将RGB转换为LAB(L表示亮度,而a和b表示反对色的绿色–红色和蓝色–黄色)即可完成工作。将CLAHE以LAB格式应用于转换后的图像,仅应用于亮度组件,然后将图像转换回RGB。
这是代码段。
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是应用CLAHE后获得的最终RGB图像。