白平衡,即所谓的白色的平衡。
白平衡的算法有很多,这里记录的是最简单实用的白平衡算法,即灰色世界法!
灰度世界算法(Gray World)是以灰度世界假设为基础的,该假设认为对于一幅有着大量色彩变化的图像, R、 G、 B 三个分量的平均值趋于同一个灰度K。
下面是具体的算法代码:
RGB=imread('test.jpg'); R = RGB(:,:,1); G = RGB(:,:,2); B = RGB(:,:,3); Rx4 = RGB(:,:,1)*4; Gx4 = RGB(:,:,2)*4; Bx4 = RGB(:,:,3)*4; //Rx4只是做了一个简单的线性的提亮,可以不用参考。 Rave = mean(mean(R)); Gave = mean(mean(G)); Bave = mean(mean(B)); Kave = (Rave + Gave + Bave) / 3; R1 = (Kave/Rave)*R; G1 = (Kave/Gave)*G; B1 = (Kave/Bave)*B; R2 = (Kave/Rave)*Rx4; G2 = (Kave/Gave)*Gx4; B2 = (Kave/Bave)*Bx4; RGB_white = cat(3, R1, G1, B1); RGB_whitex4 = cat(3, R2, G2, B2); RGB_white_out = uint8(RGB_white); RGB_white_outx4 = uint8(RGB_whitex4);
下面是算法的效果:
原图:
白平衡之后:
可见,最原始的算法,效果还是不错的,后面有机会会补充其他好一些的算法。
时间: 2024-10-12 21:50:55