数据库中大量的眼底图像亮度不均,明暗分布不一致,在预处理过程中,需要进行亮度校正。
在HSV 颜色空间中V分量直接反映亮度信息,因此通过HSV 对亮度进行校正。
用两种方法进行校正,参数value在-1~1之间,value的具体取值,根据源图的亮度均值调整。
1)基于当前的亮度:
value取值 [0,1]之间,亮度乘数alpha = 1/(1-value),即当前值越大,调整后越大。
value取值[-1,0] 之间,亮度乘数alpha = value+1,即亮度降低
2)均衡扩大,
亮度乘数alpha = value, 所有的像素都增加 同样的亮度值
代码如下,
def HSV_adjust(rgb_img, basedOnCurrentValue=True):
img_mean = cv2.mean(rgb_img)[0]
img_mean, img_stddv = cv2.meanStdDev(rgb_img)
print("\n mean:", img_mean, " stddev:",img_stddv)
# 源图像的的rgb三通道的亮度均值加权平均 r* 4 + g *3 +b *3/ 三通道的亮度均值和
img_mean_acc = img_mean[0] + img_mean[1] + img_mean[2]
img_mean_avr = (img_mean[0] *4 + img_mean[1] *3+img_mean[2